編輯:關於android開發
Android 設備可以接在不同類型的 Dock 底座中,其中包括車載的,家用的,以及數字的和模擬的。許多 Dock 基座都能為接在其上面的設備供電,所以,“dock-state”(Dock狀態)也通常是接入設備的充電狀態。
Dock 狀態的變化如何影響您應用程序的服務更新速度取決於您應用程序的設計。假如是一個獲取體育賽況的應用程序,那麼在 “desktop dock” 狀態時,可以提高其數據的更新頻率,而當在 “car docked” 狀態時,可以完全禁用數據的更新。相反,假如該應用程序是用來獲取當前交通路況的,那麼就應當在“car docked” 狀態時選擇最大限度提高數據的更新速度。
系統會廣播 “sticky” 類型的 Dock 狀態通知 ,您可以通過該 Intent 來查詢設備當前是否在 Dock 狀態,以及具體的 Dock 類型。
Dock 狀態的詳細信息可以從 Action 為 中的廣播數據中取得,因為廣播類型是 “sticky”的,您不需要自己定義 ,只需要調用 registerReceiver() 方法,並且傳入空的參數null就可以了。
該方法的返回值 intent 就包括了當前 Dock 狀態的詳細信息。
示例代碼:
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT); Intent dockStatus = context.registerReceiver(null, ifilter);
您可以通過鍵值 EXTRA_DOCK_STATE 來取得當前的 Dock 狀態。
示例代碼:
int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1); boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
如果設備當前在Dock狀態,那麼目前支持的Dock類型如下:
請注意後面的兩種Dock類型只支持Android API Level 11以上,所以較好的方法是只需要區分大的 dock 類型,而不用去具體關注是數字的,還是模擬的。
示例代碼:
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;
每當 Andoid 設備在 Dock 和非 Dock 狀態之間切換的時候(即設備接入底座和從底座拔出),系統就會廣播 Action 為 的廣播。要想在應用程序中捕捉這種狀態的變化,您只需要注冊一個自定義的廣播接收器Receiver就可以了。
示例代碼:
<action android:name="android.intent.action.ACTION_DOCK_EVENT"/>
您可以在Receiver的代碼實現中獲取當前Dock的詳細信息,具體方法參照前面的步驟。
參考文摘:
轉自:http://blog.zhourunsheng.com/2011/12/android-%e7%94%b5%e6%ba%90%e7%ae%a1%e7%90%86%e4%b8%93%e9%a2%98%e4%b9%8b%e8%8e%b7%e5%8f%96%e5%92%8c%e7%9b%91%e6%b5%8bdock%e7%8a%b6%e6%80%81%e5%92%8c%e7%b1%bb%e5%9e%8b/ | 潤物無聲
SpannableString與SpannableStringBuilder使用,spannablestring轉自:http://blog.it985.com/1443
在 Android 上使用 RxNetty 在 Android 上使用 RxNetty Netty是由JBOSS提供的一個Java開源框架,是一個支持TCP/UDP/HT
算法—排序算法總結,排序算法總結
Android 撥號器的簡單實現,android撥號器實現功能實現:一個EditView 一個撥打按鈕,輸入號碼跳轉到撥號界面 界面布局:activity_call.xm