Android 13 默认打开 使用屏幕键盘

原生设置里,系统-语言和输入法-实体键盘-使用屏幕键盘 选项,

关闭时,外接物理键盘,如USB键盘,输入时不会 弹出软键盘。

打开时,外接物理键盘,如USB键盘,输入时 弹出软键盘。

这个选项默认是关闭的。

改为打开,如有需要,可通过 overlay 的方法修改。

复制代码
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -38,4 +38,7 @@
     <!-- Decrease animation duration. -->
     <fraction name="def_window_animation_scale">50%</fraction>
     <fraction name="def_window_transition_scale">50%</fraction>
+
+    <!-- Default for Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD -->
+    <bool name="def_show_ime_with_hard_keyboard">true</bool>
 </resources>

Settings 源码在 ./packages/apps/Settings/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java

复制代码
    @Override
    public void onResume() {
        super.onResume();
        mLastHardKeyboards.clear();
        scheduleUpdateHardKeyboards();
        mIm.registerInputDeviceListener(this, null);
        mShowVirtualKeyboardSwitch.setOnPreferenceChangeListener(
                mShowVirtualKeyboardSwitchPreferenceChangeListener);
        registerShowVirtualKeyboardSettingsObserver();
    }

   private void registerShowVirtualKeyboardSettingsObserver() {
        unregisterShowVirtualKeyboardSettingsObserver();
        getActivity().getContentResolver().registerContentObserver(
                Secure.getUriFor(Secure.SHOW_IME_WITH_HARD_KEYBOARD),
                false,
                mContentObserver,
                UserHandle.myUserId());
        updateShowVirtualKeyboardSwitch();
    }

    private void updateShowVirtualKeyboardSwitch() {
        mShowVirtualKeyboardSwitch.setChecked(
                Secure.getInt(getContentResolver(), Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0);
    }
    
    private final OnPreferenceChangeListener mShowVirtualKeyboardSwitchPreferenceChangeListener =
            (preference, newValue) -> {
                Secure.putInt(getContentResolver(), Secure.SHOW_IME_WITH_HARD_KEYBOARD,
                        ((Boolean) newValue) ? 1 : 0);
                return true;
            };
相关推荐
Despacito0o1 天前
瀚文机械键盘固件开发详解:HWKeyboard.cpp文件解析与应用
数据库·mongodb·计算机外设
步达硬件1 天前
【原理解析】为什么显示器Fliker dB值越大,闪烁程度越轻?
计算机外设·显示器
感叹号的豆浆2 天前
使用qt 定义全局钩子 捕获系统的键盘事件
qt·计算机外设
Despacito0o2 天前
瀚文(HelloWord)智能键盘项目深度剖析:从0到1的全流程解读
计算机外设
开开心心就好2 天前
高效视频倍速播放插件推荐
python·学习·游戏·pdf·计算机外设·电脑·音视频
Despacito0o4 天前
APM32主控键盘全功能开发实战教程:软件部分
驱动开发·计算机外设
Java&Develop4 天前
Windows如何定制键盘按键
计算机外设
LAM LAB5 天前
【键盘说明书备份】ENERGYFORT
计算机外设
cnbestec6 天前
MinVerse 3D触觉鼠标的技术原理与创新解析
3d·计算机外设·xr·minverse·minverse 3d触觉鼠标·三维交互·触觉反馈
ai.Neo7 天前
第2期:APM32微控制器键盘PCB设计实战教程
计算机外设