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