Mbao 发表于 2017-6-12 21:28:46

如何在s500(cb6) 源码中删除Setting里的自动旋转屏幕按钮

本帖最后由 Mbao 于 2017-6-14 11:07 编辑

自动旋转屏幕位置在:Setting -->accessibility ---->auto-rotate screen(自动旋转开关)
   
既然知道其位置,我们只需要用以下指令查找auto-rotate screen 在Setting源码中的哪个文件里有定义.
    cd android/packages/apps/Settings/
grep -nHrw "auto-rotate screen"./   
经过代码分析排除后可以发现其主要在accessibility_settings.xml定义了控件属性,在AccessibilitySettings.java引入了这个控件属性,并实现了这个控件的功能方法
这样我们只要删除这两个文件里定义auto-rotate screen相关就可以

1)先删除其布局文件.
      在packages/apps/Settings/res/xml/accessibility_settings.xml中注释掉以下代码
            
<SwitchPreference
                android:key="toggle_lock_screen_rotation_preference"
                android:title="@string/accelerometer_title"
               android:persistent="false"/>      
2)再删除其定义属性和及相关功能方法.
    在 packages/apps/Settings/src/com/android/settings/accessibility/AccessibilitySettings.java注释掉以下代码就可以private static final String               TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE="toggle_lock_screen_rotation_preference";

mToggleLockScreenRotationPreference=(SwitchPreference)findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE);

    if (!RotationPolicy.isRotationSupported(getActivity())) {
mSystemsCategory.removePreference(mToggleLockScreenRotationPreference);
}

// Auto-rotate screen
updateLockScreenRotationCheckbox();
注意:最后编译之前先要删除android 文件夹里的out文件




页: [1]
查看完整版本: 如何在s500(cb6) 源码中删除Setting里的自动旋转屏幕按钮