La mia intenzione è di aver salvato in Preferenze lo stato corrente del dispositivo USB cavo di alimentazione/USB: connesso/disconnesso. Dal sito dello sviluppatore vedo che ci sono due intenzioni per ottenere quello stato: ACTION_POWER_CONNECTED/DISCONNECTED. Così ho usato lo stesso codice come pubblicato agli sviluppatori:Ottenere l'evento IN/OUT con cavo USB inserito utilizzando EXTRA_PLUGGED non funziona
http://developer.android.com/training/monitoring-device-state/battery-monitoring.html
nella sezione monitorare i cambiamenti nello stato di carica.
manifesto
<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>
codice 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();
}
}
Quando sto collegando il cavo USB IN/OUT di trasmissione è sempre inviato e catturato in PowerConnectionReceiver ma sempre con lo stesso risultato (correttamente = il cavo è scollegato).
L'ho provato con Galaxy Nexus 4.1.1/4.2.1 - Ricevo sempre 2xFALSE in Toast (chargePlug = FALSE, usbCharge = FALSE).
Perché intent.getIntExtra (BatteryManager.EXTRA_PLUGGED, -1) ritornano sempre valore predefinito "-1"?
Grazie.
ps. tutto funziona correttamente se registro il ricevitore in Java
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
... in Servizio o in Attività. Tuttavia, secondo il sito degli sviluppatori Android, non è necessario eseguire il codice sopra per restituire il valore corretto;
Mi chiedo se questo ha qualcosa a che fare con questi problemi? [This] (http://code.google.com/p/android/issues/detail?id=25701) e [This] (http://code.google.com/p/android/issues/detail?can = 2 & start = 0 & num = 100 & q = & colspec = ID% 20Type% 20Status% 20Owner% 20Summary% 20Stars & groupby = & sort = & id = 25703) – TronicZomB