Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> Android Widget開發實例-電量監控

Android Widget開發實例-電量監控

編輯:初級開發

一個簡單的電量監控代碼可以很好的演示Android平台下Widget開發中的基礎方式,比如appWidget如何於Service交互以及RemoteVIEws的演示。完成的工程代碼我們稍作美化後提供下載,同時下次開始我們提供一些國外比較優秀的開源工程實例做剖析,從2007年11月至今SDK發布已經近兩年了,相信大家可以看到整個Google android平台的開發還是十分簡單的,難度等級和J2ME相似,相信入門的網友只要經常光顧android123開發站點一定會很好掌握的。

import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.widget.RemoteVIEws;

public class BatteryMonitorWidget extends AppWidgetProvider
{
    public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )
    {
               context.startService(new Intent(context, BatteryMonitorReceiver.class));
    }

    public static class BatteryMonitorReceiver extends Service
    {
        private int currentBatteryLevel = 0;

        private BroadcastReceiver batteryReceiver = new BroadcastReceiver()
        {
            @Override
            public void onReceive( Context context, Intent intent )
            {
                currentBatteryLevel = intent.getIntExtra( "level", 0 );
            }
        };

        @Override
        public void onStart( Intent intent, int startId )
        {
            registerReceiver( batteryReceiver, new IntentFilter( Intent.ACTION_BATTERY_CHANGED ) ); //注冊一個動作改變事件捕獲,這裡為電量改變時即ACTION_BATTERY_CHANGED 
            RemoteViews views = new RemoteVIEws( getPackageName(), R.layout.main );  //從layout下main.XML中構造widgets

             //這裡我們應該判斷currentBatteryLevel的數值來顯示圖片電量等級,比如battery_level_1或battery_level_5等等,下面是n
            views.setImageViewResource( R.id.ImageVIEw01, R.drawable.battery_level_n );

            views.setTextVIEwText( R.id.myText, currentBatteryLevel + "%" );  //從BroadcastReceiver讀取當前的電量等級


            ComponentName thisWidget = new ComponentName( this, BatteryMonitorWidget.class );
            AppWidgetManager manager = AppWidgetManager.getInstance( this );
            manager.updateAppWidget( thisWidget, updateVIEws ); //開始執行了
        }

        @Override
        public IBinder onBind( Intent intent )
        {
                  return null;
        }

    }
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved