背景:
我最近购买了摩托罗拉 XOOM 平板电脑以及桌面基座和蓝牙键盘配件。
扩展坞和键盘很好用,但是当我将平板电脑从扩展坞上取下以离开办公桌时,键盘仍然与设备配对,我必须手动更改设置才能使用软键盘。当我将它放回扩展坞时也是如此,我需要手动将其切换回来。这不是一个大问题,但不必考虑它会很好。
因此,我尝试从市场上下载一个应用程序,该应用程序在连接或断开电源时简单地打开和关闭蓝牙,这在一段时间内运行良好,但后台服务会在一段时间后停止并变得无用,直到我手动重新启动它。
要点:我正在尝试为我的平板电脑编写一个小应用程序/服务,该应用程序/服务将识别它何时已停靠/取消停靠并相应地切换“使用物理键盘”设置。
我已经开始使用 BroadcastReciever 来识别 Dock 状态:
公共类 DockBroadcastReciever 扩展 BroadcastReceiver { 私有最终字符串 DOCK_STATE_LABEL = "android.intent.extra.DOCK_STATE"; @覆盖 公共无效 onReceive(上下文上下文,意图意图){ 捆绑附加服务 = intent.getExtras(); 字符串消息 = (extras.getInt(DOCK_STATE_LABEL) == Intent.EXTRA_DOCK_STATE_UNDOCKED) ?“未停靠”:“停靠”; Toast toast = Toast.makeText(context, message, Toast.LENGTH_LONG); toast.show(); } }
但是我无法找出在事件触发后更新设置的最佳方法。我已经使用InputMethodManager 浏览了一些示例,但所有方法似乎都需要特定的EditText或其他一些输入来绑定。
此外,我似乎无法在文档中的任何位置找到代表该设置的相应常量,但以图形方式,它位于此处:http: //i.stack.imgur.com/esFaw.png
谁能帮我解决这个问题?
我希望有一个更改设置的解决方案,但我也对其他想法持开放态度。