确定和监测对接状态和类型
Android设备可以分为几种不同类型的码头停靠。这些措施包括汽车或家庭码头和数字与模拟码头。该码头状态通常是紧密联系在一起的许多码头对接设备提供电源的充电状态。
如何码头状态的手机会影响您的更新率取决于你的应用程序。当它在台式机扩展底座,您可以选择增加一个体育中心的应用程序的更新频率,或完全禁用,如果该设备是车停靠。相反,你可以选择更新,同时最大限度地提高您的车停靠,如果你的后台服务更新的交通条件。
该码头的状态还播出了一个棘手的意图
,让您查询,如果该设备是停靠或不,如果是这样,在何种码头。
确定当前处于对接状态
作为一个额外的粘广播的ACTION_DOCK_EVENT
行动码头状态的详细信息。因为它是粘的,你不需要注册 的BroadcastReceiver
。你可以简单地调用registerReceiver()
通过在空
的广播接收器在未来的片段。
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT); Intent dockStatus = context.registerReceiver(null, ifilter);
您可以提取当前的对接状态从该EXTRA_DOCK_STATE的
额外:
int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1); boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
确定当前基座类型
如果一台设备停靠时,它可以在任何一个四种不同类型的码头停靠:
- Car
- Desk
- Low-End (Analog) Desk
- High-End (Digital) Desk
请注意,后两个选项,只引进到Android API 11级,所以这是很好的做法,检查所有三个码头而不是它是数字或模拟具体的类型,你只关心:
boolean isCar = dockState == EXTRA_DOCK_STATE_CAR; boolean isDesk = dockState == EXTRA_DOCK_STATE_DESK || dockState == EXTRA_DOCK_STATE_LE_DESK || dockState == EXTRA_DOCK_STATE_HE_DESK;
监测Dock中的状态或种类的变化
每当设备停靠或脱开,ACTION_DOCK_EVENT的
行动广播。监控设备的基座状态的变化,简单地注册一个广播接收应用程序清单下面的代码片段所示:
<action android:name="android.intent.action.ACTION_DOCK_EVENT"/>
您可以提取码头内的接收器实现使用相同的技术在上一步中所描述的类型和状态。