1

BroadCastReceiver を使用してバッター レベルを取得しようとしています。

int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0);

AndroidManifest.xml に次のアクセス許可を追加しました。

<uses-permission android:name="android.permission.BATTERY_STATS" />

レベルとスケールを印刷すると、デフォルト値の 0 が表示されます。追加の設定はありますか?

4

2 に答える 2

3

バッテリ レベルを % で計算する:

次に示すように、バッテリー ステータス インテントから現在のバッテリー レベルとスケールを抽出することで、現在のバッテリー充電量を確認できます。

int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = battery.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

次のように BroadcastReceiver を実装します。

 BroadcastReceiver mybatteryReceiver= new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                int rawlevel = intent.getIntExtra("level", -1);
                int scale = intent.getIntExtra("scale", -1);
                int level = -1;
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }
                Log.d("TEMP","Battery Level in % is:: " + level + "%");
            }
        };

ここからコードを入手してください。正常に動作します。

https://www.dropbox.com/s/1y6q5wu526ngz7t/BatteryStats.zip

コードの結果: ここに画像の説明を入力

于 2012-10-02T00:28:14.483 に答える
0

バッテリーの充電状態を取得するための許可は必要ありません。放送受信機で次のコードを使用するだけです:-

int レベル = インテント.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);

これにより、バッテリーレベルが得られます:)

于 2014-07-27T11:50:51.950 に答える