方法:
1,在系统package/app/Settings/src找菜单所对应的类(activity/fragment)
2,进到frameworks/base/packages/SettingsLib/找到TileUtils.java类里的getTilesForIntent方法
,然后根据包名来屏蔽。
实例:屏蔽系统设置里内存菜单
1,在package/app/Settings/src/com/android/settings/Settings.java类中找到
public static class MemorySettingsActivity extends SettingsActivity { /* empty */ }
2,回到frameworks/base/packages/SettingsLib/里的TileUtils.java的getTilesForIntent方法中实现以下代码:
if ("com.android.settings.Settings$MemorySettingsActivity".equals(activityInfo.name) &&
//TopwiseProp.getDefaultSettingBoolean这个类是自己的代码实现开关。switch_operate可以随意取,但是不能过长
//(可以用系统的SystemProperties.set()来实现)
switchOperate.getDefaultSettingBoolean("switch_operate",true) == false) {
continue;
}
3,模块编译frameworks/base/packages/SettingsLib/
注意,编译frameworks/base/packages/SettingsLib/生成SettingsLibTests.apk这个SettingsLibTests.apk不用管。
4,继续编译package/app/Settings/生成Settings.apk。adb push到对应的路径下,重启机器即可