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 responses to “Первый опыт написания программ для Android”

  1. iliich says:

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

  2. 21h says:

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

  3. Boten says:

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

  4. 21h says:

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

  5. iliich says:

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

  6. iliich says:

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

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Комментарии

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

© Vladimir Smagin, 2005-2017. Копирование материалов без разрешения запрещено.