Android 3.0使用物理键盘设置

时间:2011-03-21 23:10:53

标签: android keyboard settings android-3.0-honeycomb input-devices

背景:

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

任何人都可以帮我解决这个问题吗?

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

1 个答案:

答案 0 :(得分:0)

我有一个类似的应用程序。它可以根据电源切换wifi和蓝牙。

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

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

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

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