【问题标题】:get battery level on Android after specfic code在特定代码后在 Android 上获取电池电量
【发布时间】:2013-09-29 05:29:49
【问题描述】:

我正在尝试在某个代码后更换电池。我正在使用以下代码,但不幸的是没有运气。任何想法,我都归零了

就创建一个:

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

【问题讨论】:

  • 也许电池没有变化?
  • 你怎么知道应该有?花时间不是一个可行的提示/论据...有很多方面可以对电池产生影响...

标签: java android android-intent


【解决方案1】:

正如您所写,我们不知道问题出在电池电量检测方法还是减法上。 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,则可能存在兼容性问题。你能提供你的设备规格和安卓版本吗?

【讨论】:

  • 我觉得不行,你能告诉我怎么做吗?
  • Android 版本 2.3.6 - 三星 W GT-I8150
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多