很多网友可能发现部分Android手机或平板支持底座,目前比较主流的有摩托罗拉系列,中低端的Milestone和Milestone 2代均可以使用充电底座或多媒体底座,网购大概50元左右。而中高端的Atrix 4G则支持HD或物理键盘底座,在我们连接底座后,一般使用官方固件的Android手机会自动切换到底座的桌钟模式,会显示提前、时间或闹铃等信息,如果通过代码获取底座插拔状态呢? 下面Android123给大家一个简单的思路。
在Androidmanifest.xml文件中,我们在自己应用的主activity中,加入下面的代码
C/C++代码
- <meta-data android:name="android.dock_home" android:value="true" />
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.DESK_DOCK" />
- </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 则是断开底座。