INT 21h

Домашняя страница самого страшного прерывания

Первый опыт написания программ для Android

№ 3916 В разделе "Программирование" от December 15th, 2011,

Программа для показа погоды с сайта termo.tomsk.ru. Тестировал сразу же на моем подключенном к компу HTC Sensation.

А теперь напишу о впечатлениях и пройденных граблях.
Код программы:

package tomsk.termo;

import android.app.*;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.*;
//import java.net.URLConnection;

public class Tomsk_weather_trayActivity extends Activity {
    /** Called when the activity is first created. */
    
    
    private static final int NOTIFY_ID = 1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        CharSequence temper = getTermo();
        String ns = Context.NOTIFICATION_SERVICE;
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
        int icon = android.R.drawable.sym_action_chat;
        CharSequence tickerText = "В Томске "+temper;
        long when = System.currentTimeMillis(); 

        Notification notification = new Notification(icon, tickerText, when);
        Context context = getApplicationContext();
        CharSequence contentTitle = "Температура в Томске";
        CharSequence contentText = temper;
        Intent notificationIntent = new Intent(this, Tomsk_weather_trayActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

        notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
 

        mNotificationManager.notify(NOTIFY_ID, notification);
        
    }
    
    public CharSequence getTermo() {
        CharSequence termo = "??";
        StringBuilder allpage = new StringBuilder();
        
        try {
            URL url = new URL("http://termo.tomsk.ru:80/data.txt");            
            URLConnection conn = url.openConnection();
            DataInputStream  in = new DataInputStream(conn.getInputStream());
            String inputLine;
            
            while ((inputLine = in.readLine()) != null) 
                 allpage.append(inputLine);
            in.close();
            termo = allpage.toString();
        }
        catch (Exception e){
            termo="["+e+"]";
        }          
        return termo+"°C";
    }
}

Если все хорошо, то в область уведомлений выведется погода в Томске. Но сразу же хорошо не будет, не надейтесь. Я долго колупался почему же программа не видит хост termo.tomsk.ru пока не вспомнил про права доступа.

Открываете AndroidManifest.xml, заходите в меню предоставления прав доступа и добавляете INTERNET. Только после этого ваша программа сможет работать с сетью.

6 комментариев »

6 комментариев »

Comment by iliich | December 15, 2011 @ 21:11:58

Ты Эклипс открыл)

Comment by 21h | December 15, 2011 @ 21:48:43

и с радостью бы закрыл это тормозное гумно. я от него отказался 5 лет назад в пользу NetBeans. Слышал для NetBeans есть плагин андроидный. Его буду пробовать.

Comment by Boten | December 16, 2011 @ 09:07:43

Дайте мне мак и 100 уе в год – и я тоже буду писать говнософт для iOS!

Comment by 21h | December 16, 2011 @ 09:10:56

на хакинтоше сиди. да и 100 уе маловато будет. я за день могу больше заработать :)

Comment by iliich | December 16, 2011 @ 21:09:58

Ох не знаю у меня тяжолые остались воспамиания о нетбинсе, как то очень редко смотрел переодически и не в восторге.

Comment by iliich | December 16, 2011 @ 21:11:39

Наверное поставлю щаз даже, попробую наладить одну хреновину которая раздражала всегда в эклипсе. И под питон поискать надо плагин, вместе с джангой.

Форма отправки комментария

*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • 21h: нене ) без меня )
  • Серегй: Не совсем грабить)) если грабить можно и без рации, есть более благие цели, вы просто ответьте на мой вопрос,...
  • 21h: магазин грабить собрались? ) не, тут я не помощник ;)
  • Серегй: А что бы мне поймать чужую волну, что мне для этого нужно сделать? Допустим я купил данную рацию себе, мне...
  • 21h: слушать никто не запрещает. нет закона, который запрещает слушать. те, кто говорит иначе нагло врут. а если...
  • Серегй: Я хотел узнать могу ли я просто прийти с данной рацией baofeng uv-5r, допустим на объект, ну или вообще...
  • 21h: У меня есть только эти 2. По другим ничего не знаю. В интернете можно скачать инструкцию к вашей модели рации,...
  • Серегй: Добрый день! Хотелось бы задать пару вопросов по поводу раций, у Вас есть куда можно обратиться ТАТ.
  • 21h: потому, что нейросетью проще. яркость светофора меняется в зависимости от времени суток от маленькой красной...
  • Михаил: А зачем нейросеть? Почему цвет светофора определить без нейросетей?