Chi tiết trạng thái đế được bao gồm dưới dạng phụ thêm trong quảng cáo cố định của hành động ACTION_DOCK_EVENT. Bởi vì nó dính, bạn không cần phải đăng ký một BroadcastReceiver. Bạn có thể chỉ cần gọi registerReceiver() truyền vào null như bộ thu phát sóng như được hiển thị trong đoạn mã tiếp theo.
mContext = getApplicationContext();
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = registerReceiver(null, ifilter);
Bạn có thể trích xuất các tình trạng docking hiện tại từ EXTRA_DOCK_STATE thêm:
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;
Bất cứ khi nào thiết bị được cập cảng hoặc gắn, hành động ACTION_DOCK_EVENT là phát sóng. Để theo dõi các thay đổi trong trạng thái dock của thiết bị, chỉ cần đăng ký bộ thu phát sóng trong tệp kê khai ứng dụng của bạn như được hiển thị trong đoạn mã bên dưới: action android: name = "android.intent.action.ACTION_DOCK_EVENT"
Hy vọng điều này sẽ hữu ích.
doc android về 'trạng thái dock' => http://developer.android.com/training/monitoring-device-state/docking-monitoring.html –