我有一个代码,我需要获取我的 Android 设备的电池电量,但我有一个大问题。我有一个 Android 服务,我可以在其中获取电池电量并通过 UDP 发送。
这是我的服务代码:
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 中的 onReceive 方法中放置了一个 BreakPoint,但此代码仅在执行 onStartCommand 后执行,并且需要将电池电量的值用于 onStartCommand。
我该怎么做?