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


 

 

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

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

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); // Запуск парсера<br /><br />?&gt;

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

 

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

vu

 

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

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

 

 

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

scr_shtscr_sht2

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


Android app on Google Play

 

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