把Settings->Apps->All apps->Settings中的Force Stop按键置灰,就如同下图那样
解决方法如下:首先通过使用as的一个工具uiautomatorviewer.bat找到Force Stop按键的button id,id为button3
然后在代码里面使用grep搜一下:
根据包找到AppButtonsPreferenceController.java,添加log刷机验证知晓force stop按键就在这个类中,搜索force stop找到 updateForceStopButton()方法,通过注释可以直接知道满足那些条件就会实现button3的置灰与显示
继续看的话他也是通过updateForceStopButtonInner()方法实现的
按键的显示与置灰是通过enable的值控制的,所有ForceStop按键的置灰与显示最终都是调用此方法实现的,因此添加一个包名过滤即可实现需求
void updateForceStopButtonInner(boolean enabled) {
- if (mAppsControlDisallowedBySystem) {
+ boolean properties = mPackageInfo.packageName.equals("com.android.settings");
+ Log.d("swl","mPackageInfo.packageName: "+mPackageInfo.packageName);
+ if (properties == true || mAppsControlDisallowedBySystem) {
mButtonsPref.setButton3Enabled(false);
} else {