java - 在特定代码后获取 Android 上的电池电量

标签 java android android-intent

我正在尝试在特定代码后更换电池。我正在使用以下代码,但不幸的是没有运气。我得到零任何想法请

在上创建一个:

batteryIntent = registerReceiver(null,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

private double batteryLevel() {
   int rawlevel = batteryIntent.getIntExtra("level", -1);
   double scale = batteryIntent.getIntExtra("scale", -1);
   double level = -1;
   if (rawlevel >= 0 && scale > 0) {
       level = rawlevel / scale;

   }
return level;

 } 

在 onClick 上:

double startbatterylevel = batteryLevel();

//certain code

double estimatedbattery  =  startbatterylevel -  endbatterylevel ;
Estbatterylevel.setText("estimated battery"+estimatedbattery);

最佳答案

如您所写,我们不知道问题是出在电池电量检测方法上还是出在减法上。 batteryLevel(); 方法的输出是什么?它是准确的还是始终是默认值?

您可以尝试修改此页面上的示例:http://mobiledevtuts.com/android/android-sdk-get-device-battery-information/

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

private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
        Estbatterylevel.setText("estimated battery" + level);
    }
};

如果还是显示0,可能是兼容性问题。你能提供你的设备规范和安卓版本吗?

关于java - 在特定代码后获取 Android 上的电池电量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622620/

相关文章:

java - 事件驱动架构的一个例子?

Java 8 - 构造函数引用 - Select 类型未定义适用于此处的 Select(DataObj)”

java - android asynctask取消不工作

javascript - 按下键盘完成按钮时,Focusout 不适用于移动设备,但适用于文档点击

安卓 : How to launch Pending intent from another activity with extras?

android - 如何让Android Camera Intent返回全尺寸图片

android - 如何使用 ShareCompat.IntentBuilder 启动 Activity

Java - 从作为参数传递的类型创建 ArrayList

java - java中如何转换外来字符?

android - 在方向更改期间保存 Recycler View 的实例