低版本比如P的只要在MtkSettings里面./src/com/android/settings/backup/BackupSettingsActivityPreferenceController.java
getAvailabilityStatus()换掉return 就行,高版本是没有这个文件的
如果直接删掉activity,不仅删不掉还会报错,因为低版本的res/xml/system_dashboard_fragment.xml
这里面定义了backup的preference,高版本就没有,所以里面<intent android:action="android.settings.BACKUP_AND_RESET_SETTINGS" />
这个action会报错,因为我们删了,就算没删,这个action也无法执行,还是会报错
以下是S的项目可以这么改,P以下包括P这么改没用,就算删掉activity也会ANR。
这个不是普通的preference,而是个activity,需要删除这个activity,当然也不用全部删掉,把里面的meta data删了就可以。需要在这个MTKsettings里的AndroidManifest里面把这个activity删了就可以。
<activity android:name=".backup.UserBackupSettingsActivity"
就是这个activity,但不需要全删,把下面的删了就可以
<!-- Mark the activity as a dynamic setting -->
- <intent-filter>
- <action android:name="com.android.settings.action.IA_SETTINGS" />
- </intent-filter>
- <!-- Tell Settings app which category it belongs to -->
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.system" />
- <meta-data android:name="com.android.settings.icon"
- android:resource="@drawable/ic_settings_backup" />
- <meta-data android:name="com.android.settings.order" android:value="-60"/>
其实主要是这个meta-data删了就可以
删完之后,系统下面还有备份的summary字样,这个是写死的,需要该字符串了,改个中文的和默认英文的就可以了,有需求再说吧。
overlay/vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/strings.xml
<string name="system_dashboard_summary">Languages, gestures, time</string>
同理overlay/vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values-zh-rCN/strings.xml
<string name="system_dashboard_summary" msgid="7400745270362833832">"语言、手势、时间"</string>