基于Android 4.4 Settings增加开关

本文详细介绍如何在基于Android4.4系统的Settings中增加无障碍功能的开关,包括修改默认值、添加开关命名、实现开关功能等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       以下为记录在Settings 无障碍中增加开关,基于Android 4.4 系统 

 

首先是在frameworks 中增加如下三个操作

第一步:

在frameworks/base/packages/SettingsProvider/res/values/defaults.xml(该XML文件可以修改Settings数据库的默认值(准确点说是第一次开机后的值))中增加一行<bool name="def_自己命名">true</bool>

或者<integer name="def_自己命名">1</integer> 根据自己需求增加对应的数据类型。true或者1 表示开关默认打开。我使用的是bool +true 即开关默认打开。: <bool name="def_Auxiliary_touch">true</bool>

第二步:

在frameworks/base/core/java/android/provider/Settings.java 中增加开关命名。public static final String ACCESSIBILITY_AUXILIARY_TOUCH = "Auxiliary_touch"; 下面还有个地方要注意,要将增加的开关命名-ACCESSIBILITY_AUXILIARY_TOUCH-添加进字符串数组 SETTINGS_TO_BACKUP 中。

第三步:

在frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中增加

类似loadBooleanSetting(stmt, Settings.Secure.Settings.java中定义的开关名字, R.bool.default.xml定义的命名);

loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_AUXILIARY_TOUCH, R.bool.def_Auxiliary_touch);

然后在Settings中增加以下操作:

第一步在 packages/apps/Settings/res/xml/accessibility_settings.xml 中增加

       <CheckBoxPreference
                android:key="toggle_Auxiliary_touch_preference"
                android:title="显示的开关名称"
                android:persistent="false"/>

第二步在  apps/Settings/src/com/android/settings/accessibility/AccessibilitySettings.java中添加

private static final String TOGGLE_AUXILIARY_TOUCH_PREFERENCE ="toggle_Auxiliary_touch_preference";

private CheckBoxPreference mToggleAuxiliaryTouchPreference;

onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)方法中增加

else if (mToggleAuxiliaryTouchPreference == preference) {
            handleToggleAuxiliaryTouchPreferenceClick();
            return true;
         }

然后添加方法private void handleToggleAuxiliaryTouchPreferenceClick() {
        Settings.Secure.putInt(getContentResolver(),
                Settings.Secure.ACCESSIBILITY_AUXILIARY_TOUCH,
                mToggleAuxiliaryTouchPreference.isChecked() ? 1 : 0);
    }

initializeAllPreferences方法中添加 mToggleAuxiliaryTouchPreference=
                (CheckBoxPreference) findPreference(TOGGLE_AUXILIARY_TOUCH_PREFERENCE );

updateSystemPreferences()方法中增加 

final boolean AuxiliaryTouchEnabled = ettings.Secure.getInt(getContentResolver(),   Settings.Secure.ACCESSIBILITY_AUXILIARY_TOUCH, 0) != 0;      mToggleAuxiliaryTouchPreference.setChecked(AuxiliaryTouchEnabled);

以上就是在Setttings的无障碍中增加一个开关。

注意:这里不包括打开开关之后的方法实现。方法实现可以在

handleToggleAuxiliaryTouchPreferenceClick中添加,或者自己再找其他地方写。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值