我有一段代碼,需要獲取Android設備的電池電量,但我遇到了一個大問題! 我有一個android服務,我去哪裏獲取電池電量並通過UDP發送。在Android服務中使用BroadcastReceiver獲取電池電量
這是我的服務代碼:
public class Servico extends Service {
String bateria = "Nada";
/*
* Recupera nível de bateria
*/
private BroadcastReceiver BatInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent intent) {
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
bateria = String.valueOf(level);
}
};
public void onCreate() {
super.onCreate();
this.registerReceiver(this.BatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(getApplicationContext(), "Command=" + bateria + "%", Toast.LENGTH_LONG).show();
stopSelf();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(BatInfoReceiver);
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}
我的問題是:我不能得到的水平!我在BatInfoReceiver中將BreakPoint放入onReceive方法中,但此代碼僅在執行onStartCommand後執行,並且e NEED將電池電量值用於onStartCommand。
我該怎麼辦?
obs:我對可能的英語錯誤表示歉意。但我嘗試不使用谷歌的翻譯。
我把烤麪包只在測試代碼! 僅用於測試變量「bateria」的值。 –