2

背景:

我最近购买了摩托罗拉 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

谁能帮我解决这个问题?

我希望有一个更改设置的解决方案,但我也对其他想法持开放态度。

4

1 回答 1

0

我有一个做类似事情的应用程序。它可以根据功率切换wifi和蓝牙。

您需要在 AndroidManifest.xml 文件中注册其中的一些内容。

http://code.google.com/p/futonic-wifioncall/source/browse/AndroidManifest.xml

项目开源站点:http ://code.google.com/p/futonic-wifioncall/

这不是解决方案,但希望能为您尝试完成的工作提供指导。

于 2011-03-22T05:45:14.037 回答