Moim zamiarem jest zapisanie w Preferencjach bieżącego stanu urządzenia z systemem Android. Kabel USB/zasilający: podłączony/odłączony. Z witryny dla programistów widzę, że istnieją dwie możliwości uzyskania tego statusu: ACTION_POWER_CONNECTED/DISCONNECTED. Więc użyłem tego samego kodu opublikowanej programistów:Uzyskiwanie połączenia za pomocą kabla usb z wejściem IN/OUT przy użyciu EXTRA_PLUGGED nie działa
http://developer.android.com/training/monitoring-device-state/battery-monitoring.html
w sekcji Zmiany monitora w stan naładowania.
Oczywisty
<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>
kod Java
public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
Toast.makeText(context, "pvr = " + usbCharge + ", " + acCharge + "," + isCharging, Toast.LENGTH_SHORT).show();
}
}
Kiedy jestem podłączając kabel USB IN/OUT niż transmisja jest zawsze poprawnie wysłana i złapany w PowerConnectionReceiver ale zawsze z tego samego rezultatu (= kabel jest odłączony).
Testowałem to z Galaxy Nexus 4.1.1/4.2.1 - Zawsze otrzymuję 2xFALSE w Toast (chargePlug = FALSE, usbCharge = FALSE).
Dlaczego intent.getIntExtra (BatteryManager.EXTRA_PLUGGED, -1) zawsze zwraca wartość domyślną "-1"?
Dziękuję.
ps. wszystko działa poprawnie, gdy rejestruję odbiornik w Javie
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
... w usłudze lub w działaniu. Jednak zgodnie z witryną Android Developers nie jest konieczne, aby kod powyżej zwrócił poprawną wartość;
Zastanawiam się, czy to ma coś wspólnego z tymi problemami? [This] (http://code.google.com/p/android/issues/detail?id=25701) & [This] (http://code.google.com/p/android/issues/detail?can = 2 & start = 0 & num = 100 & q = & colspec = ID% 20Type% 20Status% 20Owner% 20Podsumowanie% 20Stars & groupby = & sort = & id = 25703) – TronicZomB