Я пытаюсь обнаружить, когда пользователь подключается (или отключается) на своем устройстве для зарядки. В моем приемнике, где я определяю, подключен он или нет, я всегда получаю «ложное» чтение статуса. Вот мой код:Почему мой приемник для зарядки всегда возвращает false?
(В манифесте):
<receiver android:name=".PowerConnectionReceiver" >
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
Вот класс PowerConnectionReceiver:
public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
Log.d("Battery", "Plugged In: " + String.valueOf(isCharging));
Log.d("Battery", "status: " + String.valueOf(status));
}
}
Что работает: PowerConnectionReceiver правильно вызывается, когда телефон подключен к сети.
Однако, когда я распечатываю статус, он всегда возвращается как -1 (который является значением по умолчанию, которое я ввел). Кажется, BatteryManager.EXTRA_STATUS не подходит.
Для справки, вот что эти Бревна распечатывания:
"Plugged In: false"
"status: -1"
Больше ссылок - вот страница на сайте разработчиков, я использую для этого: http://developer.android.com/training/monitoring-device-state/battery-monitoring.html
Это поможет, если вы предоставите значения переменных «status» и «chargePlug». – Maks