从Android中的服务获取电池状态

从Android中的服务获取电池状态,android,service,status,battery,Android,Service,Status,Battery,我正在开发一个应用程序,我需要监控服务的剩余电池百分比。有人能告诉我怎么做吗?我发现一些示例代码是从活动而不是服务中获取电池状态的 谢谢。这是您通过BroadcastReceiver需要的信息:这是您通过BroadcastReceiver需要的信息:有什么区别? 您应该能够为服务中的电池事件注册接收器,方法与对“活动”执行的方法相同。 例如: private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){

我正在开发一个应用程序,我需要监控服务的剩余电池百分比。有人能告诉我怎么做吗?我发现一些示例代码是从活动而不是服务中获取电池状态的


谢谢。

这是您通过BroadcastReceiver需要的信息:

这是您通过BroadcastReceiver需要的信息:

有什么区别? 您应该能够为服务中的电池事件注册接收器,方法与对“活动”执行的方法相同。 例如:

private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent intent) {
        int rawLevel = intent.getIntExtra("level", -1);
        int scale = intent.getIntExtra("scale", -1);
        int status = intent.getIntExtra("status", -1);
        // Do something
    }
};

public void onCreate() {
    registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

public void onDestroy() {
     unregisterReceiver(this.mBatInfoReceiver);
}
有什么区别? 您应该能够为服务中的电池事件注册接收器,方法与对“活动”执行的方法相同。 例如:

private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent intent) {
        int rawLevel = intent.getIntExtra("level", -1);
        int scale = intent.getIntExtra("scale", -1);
        int status = intent.getIntExtra("status", -1);
        // Do something
    }
};

public void onCreate() {
    registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

public void onDestroy() {
     unregisterReceiver(this.mBatInfoReceiver);
}

更换电池时使用动作。每次电池电量变化时都会调用它。 请参阅下面的代码以了解如何执行此操作:

public void onCreate()
{

this.registerReceiver(this.mBatInfoReceiver, 
        new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent intent) {

    int level = intent.getIntExtra("level", 0);
    Log.e("test", String.valueOf(level) + "%");

     }
};


public void onDestroy(){

    // unregister receiver
    this.unregisterReceiver(this.mBatInfoReceiver);
}

更换电池时使用动作。每次电池电量变化时都会调用它。 请参阅下面的代码以了解如何执行此操作:

public void onCreate()
{

this.registerReceiver(this.mBatInfoReceiver, 
        new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent intent) {

    int level = intent.getIntExtra("level", 0);
    Log.e("test", String.valueOf(level) + "%");

     }
};


public void onDestroy(){

    // unregister receiver
    this.unregisterReceiver(this.mBatInfoReceiver);
}

我想你必须用行动来更换电池。请注意,这是一个粘性的意图,所以您不需要直接在广播接收器中监视它。您可以直接从活动中获取引用

来自android文档:

由于这是一个粘性意图,您不需要通过简单地调用registerReceiver passing in null作为接收器来注册BroadcastReceiver,如下一个代码段所示,将返回当前电池状态意图


我想你必须换电池。请注意,这是一个粘性的意图,所以您不需要直接在广播接收器中监视它。您可以直接从活动中获取引用

来自android文档:

由于这是一个粘性意图,您不需要通过简单地调用registerReceiver passing in null作为接收器来注册BroadcastReceiver,如下一个代码段所示,将返回当前电池状态意图


你完全可以通过广播接收器完成:将答案标记为已接受PLZ你完全可以通过广播接收器完成:将答案标记为已接受PLZ工作!谢谢舱单接收器不工作!通过代码实现。工作!谢谢舱单接收器不工作!通过代码实现。