Android 3.0 使用物理键盘设置

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

背景:

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

相关文章:

android - 语音识别 - 获取所有支持的语言 - Android

android - 使用视频流作为开放的 GL ES 2.0 纹理

java - Canvas.rotate 调用导致绘制的项目消失?

xcode - 如何进行击键以删除 Xcode 中的连续空格?

android - 使用我自己的键盘

objective-c - iPad,如何制作应用内设置页面

height - 更改字体大小后更改 sublime text 默认主题中的行高

android - 如何在 Eclipse 中的 Android 项目中的代码旁边显示警告?

Unicode 按键字符?

android - 处理未找到的 Intent Action (ACTION_NETWORK_OPERATOR_SETTINGS)