背景:
我最近购买了摩托罗拉 XOOM 平板电脑以及桌面扩展坞和蓝牙键盘配件。
扩展坞和键盘运行良好,但当我将平板电脑从扩展坞上取下离开办公 table 时,键盘仍与设备保持配对状态,我必须手动更改设置才能使用软键盘。当我将它放回扩展坞时也是如此,我需要手动将其切换回来。这不是一个大问题,但最好不要考虑它。
所以我尝试从市场上下载一个应用程序,它可以在连接或断开电源时简单地打开和关闭蓝牙,这在一段时间内运行良好,但后台服务会在一段时间后停止并变得无用,直到我手动重新启动那。
要点:我正在尝试为我的平板电脑编写一个小应用程序/服务,该应用程序/服务将识别何时停靠/取消停靠并相应地切换“使用物理键盘”设置。
我已经开始使用 BroadcastReciever 来识别 Dock 状态:
public class DockBroadcastReciever extends BroadcastReceiver { private final String DOCK_STATE_LABEL = "android.intent.extra.DOCK_STATE"; @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); String message = (extras.getInt(DOCK_STATE_LABEL) == Intent.EXTRA_DOCK_STATE_UNDOCKED) ? "Undocked" : "Docked"; Toast toast = Toast.makeText(context, message, Toast.LENGTH_LONG); toast.show(); } }
但我无法找出在事件触发后更新设置的最佳方式。我浏览了一些使用 InputMethodManager 的示例,但所有方法似乎都需要特定的 EditText 或其他一些输入才能绑定(bind)。
此外,我似乎无法在文档中的任何地方找到代表该设置的相应常量,但从图形上看,它位于此处:http://i.stack.imgur.com/esFaw.png
谁能帮我解决这个问题?
我希望有一个更改设置的解决方案,但我也对其他想法持开放态度。
最佳答案
我有一个应用可以做类似的事情。它可以根据功率切换 wifi 和蓝牙。
您需要在 AndroidManifest.xml 文件中注册其中的一些内容。
http://code.google.com/p/futonic-wifioncall/source/browse/AndroidManifest.xml
项目开源站点:http://code.google.com/p/futonic-wifioncall/
这不是解决方案,但希望能为您尝试完成的目标提供指导。
关于Android 3.0 使用物理键盘设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5384842/