在android上以编程方式打开/关闭大写锁定和shift键

Posted

技术标签:

【中文标题】在android上以编程方式打开/关闭大写锁定和shift键【英文标题】:Turn on/off caps lock and shift key programatically on android 【发布时间】:2012-06-03 10:08:53 【问题描述】:

我正在开发一个 android 应用程序(键盘驱动程序),首先我将蓝牙键盘与 android 设备连接,在我的 Inputmethod 服务中成功连接后,我正在接收按键并将其发送到当前打开的编辑器。问题是我无法弄清楚如何在 android 中打开/关闭大写锁定和 shift 键功能。

任何帮助!

这是从蓝牙键盘接收按键的广播接收器

private BroadcastReceiver key3Receiver = new BroadcastReceiver() 

    @Override
    public void onReceive(Context context, Intent intent) 
        int key = Integer.parseInt(intent
                .getStringExtra(BluezService.COLONY_KEYPRESS_KEY));
        int action = intent.getIntExtra(BluezService.EVENT_KEYPRESS_ACTION,
                KeyEvent.ACTION_DOWN);
        Log.d("++++ key recieved   ", Integer.toString(key));

        InputConnection ic = getCurrentInputConnection();
        long eventTime = SystemClock.uptimeMillis();

        // ********* Hacks
        if(key==8)
        
            key=127;
        


        if (key < 130)                 
            ic.sendKeyEvent(new KeyEvent(eventTime, eventTime, action,COLONYKEYCODE[key],
                    0, COLONYKEYCODE[key], 0, 0, KeyEvent.FLAG_SOFT_KEYBOARD));
        

    
;

【问题讨论】:

当用户在硬件键盘上键入内容时,您是否在屏幕上显示 Android 软键盘? 不,我没有显示软键盘。 【参考方案1】:

在您的 EditText(或任何适当的地方)使用属性:

android:inputType="textCapCharacters"

默认情况下所有字母大写。阅读inputType 了解它的其他功能。

【讨论】:

如果与textPassword 结合使用将不起作用,例如:android:inputType="textPassword| textCapCharacters",您知道将密码与大写字母结合的方法吗?

以上是关于在android上以编程方式打开/关闭大写锁定和shift键的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 上以编程方式关闭应用程序的通知

如何以编程方式检查大写锁定是不是打开

如何在Android 6.x上以编程方式启用或禁用GPS?

如何在 Android 上以编程方式关闭 3G/数据?

如何在Android上以编程方式启用或禁用GPS?

如何在 Android SDK 26 或更高版本上以编程方式重置锁屏密码