- 比如:去掉Settings一级菜单中的“Storage”选项
方法1:
直接在AndroidManifest.xml屏蔽掉即可
vendor\mediatek\proprietary\packages\apps\MtkSettings\AndroidManifest.xml
<!-- <activity
android:name=".Settings$StorageDashboardActivity"
android:label="@string/storage_settings"
android:icon="@drawable/ic_homepage_storage"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
<action android:name="android.settings.MEMORY_CARD_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
<intent-filter android:priority="5">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.title"
android:resource="@string/storage_usb_settings" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.deviceinfo.StorageSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity> -->
方法2:
在Java文件中隐藏,无须修改AndroidManifest.xml
vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\SettingsActivity.java
private void doUpdateTilesList() {
...
//add code
somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
Settings.StorageDashboardActivity.class.getName()),
false, isAdmin)
|| somethingChanged;
//end code
注意:
1.StorageDashboardActivity要与AndroidManifest.xml中一致
2.false表示不显示。
如需隐藏其他选项,如果在SettingsActivity.java已定义,则只需把setTileEnabled方法中的第二个参数改为false即可,
否则需要像Storage一样,需要自己添加相应的code。
方法3:
vendor/mediatek/proprietary/packages/apps/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java
HashMap<String, DashboardCategory> categoryMap = new HashMap<>();
for (Tile tile : tiles) {
DashboardCategory category = categoryMap.get(tile.category);
if (category == null) {
category = createCategory(context, tile.category, categoryDefinedInManifest);
if (category == null) {
Log.w(LOG_TAG, "Couldn't find category " + tile.category);
continue;
}
categoryMap.put(category.key, category);
}
//add code
if(tile.title.equals("应用和通知") || tile.title.equals("存储") || tile.title.equals("无障碍") ||
tile.title.equals("安全性和位置信息") || tile.title.equals("帐号")){
continue;
}
//end code
category.addTile(tile);
}