设置锁屏方式后,锁屏长按电源键还有锁屏按钮(lockdown)锁屏状态下应该没有,解锁使用后长按才有这个按钮。

长按电源的菜单列表在frameworks/base/core/res/res/values/config.xml

里面有个

想去掉的话删掉就行。

但这个问题不能这么粗暴

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滑动解锁不算锁屏状态,只有加了密码的才算。

你可能感兴趣的:(android,java)