背景:
我最近购买了摩托罗拉XOOM平板电脑以及桌面基座和蓝牙键盘配件。
底座和键盘工作得很好,但是当我从平板电脑上取下平板电脑离开我的桌子时,键盘仍然与设备配对,我必须手动更改设置才能使用软键盘。当我将它放回底座时,我也需要手动将其切换回来。这不是一个巨大的问题,但不必考虑它会很好。
所以我尝试从市场上下载一个应用程序,当连接或断开电源时,它只是打开和关闭蓝牙,这种方法运行良好一段时间,但是后台服务会在一段时间后死掉并变得无用,直到我手动重启那。
重点:我正在尝试为我的平板电脑编写一个小应用程序/服务,以识别何时停靠/取消停靠并相应地切换“使用物理键盘”设置。
我已经开始使用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 或其他一些要绑定的输入。
此外,我似乎无法在文档中的任何位置找到代表该设置的相应常量,但从图形上看,它位于此处:http://i.stack.imgur.com/esFaw.png
任何人都可以帮我解决这个问题吗?
我希望有一个改变设置的解决方案,但我也对其他想法持开放态度。
答案 0 :(得分:0)
我有一个类似的应用程序。它可以根据电源切换wifi和蓝牙。
您需要在AndroidManifest.xml文件中注册其中一些内容。
http://code.google.com/p/futonic-wifioncall/source/browse/AndroidManifest.xml
项目开源网站:http://code.google.com/p/futonic-wifioncall/
这不是解决方案,但希望能为您要完成的工作提供指导。