WEB开发网
开发学院手机开发Android 开发 Android之 BatteryService 阅读

Android之 BatteryService

 2010-05-31 14:22:00 来源:WEB开发网   
核心提示:intent.putExtra("plugged", mPlugType);intent.putExtra("voltage", mBatteryVoltage);intent.putExtra("temperature", mBatteryTemperatu

intent.putExtra("plugged", mPlugType);

intent.putExtra("voltage", mBatteryVoltage);

intent.putExtra("temperature", mBatteryTemperature);

intent.putExtra("technology", mBatteryTechnology);

ActivityManagerNative.broadcastStickyIntent(intent, null);

-----------------------------------------------------------------------------------------------------------------------------------

3. 数据接收

应用如果想要接收到BatteryService发送出来的电池信息,则需要注册一个Intent为Intent.ACTION_BATTERY_CHANGED的BroadcastReceiver。

注册方法如下:

IntentFilter mIntentFilter = new IntentFilter();

mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);

registerReceiver(mIntentReceiver, mIntentFilter);

private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

String action = intent.getAction();

if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {

int nVoltage = intent.getIntExtra("voltage", 0);

if(nVoltage!=0){

mVoltage.setText("V: " + nVoltage + "mV - Success...");

}

else{

mVoltage.setText("V: " + nVoltage + "mV - fail...");

}

}

}

};

-----------------------------------------------------------------------------------------------------------------------------------

4. 数据更新

电池的信息会随着时间不停变化,自然地,就需要考虑如何实时的更新电池的数据信息。在BatteryService启动的时候,会同时通过UEventObserver启动一个onUEvent Thread。

每一个Process最多只能有一个onUEvent Thread,即使这个Process中有多个UEventObserver的实例。当在一个Process中,第一次Call startObserving()方法后,这个UEvent thread就启动了。

而一旦这个UEvent thread启动之后,就不会停止。

上一页  1 2 3 4  下一页

Tags:Android BatteryService

编辑录入:coldstar [复制链接] [打 印]
赞助商链接