很多网友可能发现部分Android手机或平板支持底座,目前比较主流的有摩托罗拉系列,中低端的Milestone和Milestone 2代均可以使用充电底座或多媒体底座,网购大概50元左右。而中高端的Atrix 4G则支持HD或物理键盘底座,在我们连接底座后,一般使用官方固件的Android手机会自动切换到底座的桌钟模式,会显示提前、时间或闹铃等信息,如果通过代码获取底座插拔状态呢? 下面Android123给大家一个简单的思路。

在Androidmanifest.xml文件中,我们在自己应用的主activity中,加入下面的代码

复制到剪贴板  C/C++代码
  1. <meta-data android:name="android.dock_home" android:value="true" />
  2. <intent-filter>
  3. <action android:name="android.intent.action.MAIN" />
  4. <category android:name="android.intent.category.DEFAULT" />
  5. <category android:name="android.intent.category.LAUNCHER" />
  6. <category android:name="android.intent.category.DESK_DOCK" />
  7. </intent-filter>

大家可以看到,上面的     <action android:name="android.intent.action.MAIN" /> 和  <category android:name="android.intent.category.DEFAULT" /> 以及  <category android:name="android.intent.category.LAUNCHER" /> 均已经有了在默认创建的工程中。

不过对于底座应用的支持还有几个action,这些是从API Level 8开始支持的,对应Android 2.2的SDK,大家可以在android.app.UiModeManager类中找到比较重要的4个广播事件,ACTION_ENTER_CAR_MODE 进入行车模式,ACTION_EXIT_CAR_MODE  退出行车模式,其中 ACTION_ENTER_DESK_MODE  就是连接底座的广播,ACTION_EXIT_DESK_MODE 则是断开底座。

05-02 21:21