Что найдём?

Статьи, заметки и находки из моего блога.

Все статьи

Пишем Android Виждет для temp.smolensk.ws

Идея виджета

Однажды в ленте новостей я обнаружил интересный вопрос

https://twitter.com/frolov_all/status/425602742917165056

Текст твита, сохранённый в метаданных старой публикации:

Тви, Друзья! Есть умельцы запилить андроид виджет? есть идейка одна...

— Александр Фролов (@frolov_all) January 21, 2014

А идейка собственно была такая:

temp_1zx1i

Первое, что нарисовалось в моей голове было:

ChallengeAcceptedBlackTextSS

Серверная часть

Серверная часть проста до безумия и представляет собой обычный парсер

<?php

$url = 'http://temp.smolensk.ws/'; // Путь к страничке с температурой
$start = '<font size=5 color=red>'; // Начальная позиция для парсера
$finish = 'C</font>'; // Конечная позиция парсера
function parser($url,$start,$finish) {
    $content = file_get_contents($url); // Получаем содержимое странички
    $position1 = strpos($content, $start); // Получаем позицию начала строки
    $position2 = strpos($content, $finish); // Получаем позицию конца строки
    $content = substr($content, $position1, $position2-$position1); // Убираем лишнее
    $content = strip_tags($content, '<p><a>'); // Чистим тэги, если имеются
    echo ($content); //Выводим содержимое
    return $content; // Возвращаем значение
}

parser($url, $start, $finish); // Запуск парсера

?>

Разработка Android-виджета

За написанием виджета я обратился к своему коллеге, начинающему Android разработчику, Виктору Усачеву.

Итак, подошел ко мне Олег, говорит, Витька, есть идея)
И тут поняслось) Обдумали и поняли, что идея хорошая, А для первого собственного проекта это очень здорово. Я согласился) Я прям загорелся! Но мой пыл быстро по угас, никак не мог подобраться к данной задачей. Сменил 2 среды программирования под андроид.

vu

Но хорошо отдохнув на выходных, пошарив в интернете, появилась версия как реализовать. И тут понеслось. =)
Написал начало, исправил все возможные ошибки, запускаем, но не работает, не отображает погоду.
Около недели бились с этой бедой. Все оказалось просто. Стоило только переопределить метод и правильно прописать переменную.
Часть злополучного кода:

@Override
        public void run() {
            InetConn in = new InetConn();
            remoteViews.setTextViewText(R.id.widget_textview, in.getInet());
            appWidgetManager.updateAppWidget(thisWidget, remoteViews);
        }

Готовое приложение

Какого была наша радость, когда у нас получилось)
И теперь благодаря совместным усилиям мы реализовали задуманное.

Готовый виджет температуры — снимок 1
Готовый виджет температуры — снимок 2

На данный момент приложение выложено в гугл плей. Качаем, юзаем, оцениваем.

Android app on Google Play

Страница приложения в Google Play (архивная ссылка)

[ По моей тележности этот пост несколько недель пролежал в черновиках. Витя, sorry.. Некоторая информация может быть неактуальна ]

Из старого блога · 2014. Сохранили дату и содержание публикации.

Оригинал