ACTION_POWER_CONNECTED のブロードキャスト レシーバーがマニフェストに登録されています。電源を接続すると、これが呼び出され、onReceive が正常に動作します。
onReceive では、Google ドキュメントに記載されている方法を使用して、次のようにバッテリーの充電状態を取得しています。
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = false;
if(status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL){
isCharging = true;
}
このメソッドは、充電器を初めて接続したときに正しい isCharging 値を与えてくれます。プラグを抜いて再度差し込むと、isCharging が false になります。
Motorola XT1068 を使用しており、上記の問題に直面しています。同じコードが One Plus Two で正常に機能しています。
私のアプリをすべての携帯電話で動作させたいので、誰かが私を案内してください.min API 10.
ans on の 3 番目のポイント ( Android のすべてのパーセンテージでバッテリー状態の変化を検出する) から、私も同じことが問題であると考えています。しかし、回避策が必要です。
前もって感謝します。編集:受信機がBattery Connectedに登録されているため、充電中かどうかを確認しても意味がありませんが、これに登録されていない他の受信機があり、定期的にバッテリーの状態を確認しています。