I dettagli dello stato del dock sono inclusi come extra in una trasmissione appiccicosa dell'azione ACTION_DOCK_EVENT. Perché è appiccicoso, non è necessario registrare un BroadcastReceiver. Puoi semplicemente chiamare registerReceiver() passando null come ricevitore broadcast come mostrato nel frammento successivo.
mContext = getApplicationContext();
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = registerReceiver(null, ifilter);
è possibile estrarre lo stato di aggancio corrente dal EXTRA_DOCK_STATE in più:
int dockState = (dockStatus == null ?
Intent.EXTRA_DOCK_STATE_UNDOCKED :
dockStatus.getIntExtra(Intent.EXTRA_DOCK_STATE, -1));
boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
boolean isCar = dockState == Intent.EXTRA_DOCK_STATE_CAR;
Ogni volta che il dispositivo è agganciato o sganciato, l'azione ACTION_DOCK_EVENT viene trasmesso. Per monitorare i cambiamenti in bacino di stato del dispositivo, è sufficiente registrare un ricevitore di broadcast nell'applicazione manifestano come mostrato nel frammento di seguito: azione androide: name = "android.intent.action.ACTION_DOCK_EVENT"
Spero che questo aiuti.
android doc about 'dock status' => http://developer.android.com/training/monitoring-device-state/docking-monitoring.html –