1

特定のコードの後でバッテリーを交換しようとしています。私は次のコードを使用していますが、残念ながら運がありません。私はゼロを得ていますどんなアイデアでもお願いします

on create:

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

2 に答える 2

3

あなたが書いたように、問題がバッテリーレベルの検出方法にあるのか、減算にあるのかはわかりません。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のバージョンを教えてください。

于 2012-11-29T09:56:15.437 に答える