长按电源的菜单列表在frameworks/base/core/res/res/values/config.xml
里面有个<string-array translatable="false" name="config_globalActionsList">
想去掉的话删掉就行。
但这个问题不能这么粗暴
在vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
这个文件就是管理长按电源的全局按钮功能的
里面的createActionItems这个方法就是处理得到的字符串,然后判断是否加入按钮显示,lockdown就在
else if (GLOBAL_ACTION_KEY_LOCKDOWN.equals(actionKey)) {
if (shouldDisplayLockdown(currentUser.get())) {
addIfShouldShowAction(tempActions, new LockDownAction());
}
所以是源码的判断有问题了,所以只需要在shouldDisplayLockdown这个方法里面修改判断就行。此方法里,源码是
return (state == STRONG_AUTH_NOT_REQUIRED
|| state == SOME_AUTH_REQUIRED_AFTER_USER_REQUEST);
这个显然是有问题的,就是横竖都是true,不管在不在锁屏了。
解决如下:
KeyguardManager mKeyguardManager = (KeyguardManager)mContext.getSystemService(Context.KEYGUARD_SERVICE);
boolean islocked = mKeyguardManager.isKeyguardLocked();
if(islocked){
return false;
}else{
return true;
}
最后别忘了导包,import android.app.KeyguardManager;
这样就是判断是否锁屏,在锁屏中是不会显示的就是返回false。滑动解锁不算锁屏状态,只有加了密码的才算。