確定和監測對接狀態和類型
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"/>
您可以提取碼頭內的接收器實現使用相同的技術在上一步中所描述的類型和狀態。