充分利用Android中服务电池状态(Getting battery status from a s

2019-09-22 03:36发布

我正在开发一个应用程序的,我需要监控从服务剩余电量百分比。 谁能告诉我该怎么办呢? 我发现,从一个活动让电池状态,而不是从服务的一些示例代码。

谢谢。

Answer 1:

使用ACTION_BATTERY_CHANGED。 这就是所谓的每一次电池值的变化。 请参见下面的代码,看看它是如何做:

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);
}


Answer 2:

有什么不同 ? 你应该能够为您的活动做登记电池事件接收器在售后服务上,以同样的方式。 例如:

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);
}


Answer 3:

下面是你通过广播接收器需要: http://developer.android.com/training/monitoring-device-state/battery-monitoring.html



Answer 4:

我认为你必须使用ACTION_BATTERY_CHANGED。 请注意,这是一个棘手的意图,所以你不需要直接在广播接收器监控。 您可以直接从活动中获得的参考。

从Android文档:

因为这是一个棘手的意图,你不需要通过广播接收器,简单地调用registerReceiver传递null作为在接下来的片段所示的接收器注册,则返回当前电池状态的意图。

http://developer.android.com/training/monitoring-device-state/battery-monitoring.html



文章来源: Getting battery status from a service in Android