@Override
public void onReceive(Context context, Intent intent) {
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS,
BatteryManager.BATTERY_STATUS_UNKNOWN);
if (status == BatteryManager.BATTERY_STATUS_CHARGING
|| status == BatteryManager.BATTERY_STATUS_FULL)
Toast.makeText(context, "Charging!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(context, "Not Charging!", Toast.LENGTH_SHORT).show();
}
manifeście:Stan baterii nie zawsze jest ładowanie
<receiver android:name=".receiver.BatteryReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
<action android:name="android.intent.action.BATTERY_CHANGED" />
</intent-filter>
</receiver>
W tym kodzie Toast zawsze pokazuje „brak ładowania”. Przetestowałem to na prawdziwym urządzeniu, a kiedy podłączę go do zasilania AC lub USB, nadal wyświetla się komunikat "Not Charging!" Toast.
tam coś złego z intent.getIntExtra sprawdzić gdzie ta metoda jest wywoływany i upewnij się, że ustawiasz intencje z poprawnymi parametrami. – John
Jaki jest status, który otrzymujesz? – zmbq
@John Używam go w moim manifeście. –