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;
            };
相关推荐
呉師傅1 天前
国产麒麟系统卡启动项或图标如何解决
运维·网络·windows·计算机外设·电脑
触想工业平板电脑一体机1 天前
【触想智能】工业触控一体机在船舶海运设备上应用的特点和具体场景分析
android·网络·计算机外设·电脑·智能电视
企鹅侠客2 天前
定时坐标鼠标点击器
计算机外设·定时点击·鼠标点击
TESmart碲视2 天前
M4芯片MacBook支持多显示器吗?mac如何与KVM切换器使用。
macos·计算机外设·mst·kvm切换器·双屏kvm切换器
jmu-pfm4 天前
联想拯救者Y7000P遇到键盘失灵USB接口失效问题
计算机外设
斌蔚司李4 天前
外接显示器无法使用键盘/鼠标问题解决
计算机外设
电脑小管家4 天前
DirectX报错怎么办?快速修复游戏和软件崩溃问题
windows·驱动开发·microsoft·计算机外设·电脑
极客先躯4 天前
如何修复 ECharts 鼠标交互(如 hover、点击)位置错位的问题
计算机外设·echarts·交互
uuleaf5 天前
打字速度练习:零基础14天提升到80CPM键盘打字指南
计算机外设