zoukankan      html  css  js  c++  java
  • android 按menu键解锁功能的开关

    android 4.4

    android 5.0

    android 5.1

    修改文件frameworksasepackagesKeyguard esvaluesconfig.xml

    里的

        <!-- Allow the menu hard key to be disabled in LockScreen on some devices [DO NOT TRANSLATE] -->

        <bool name="config_disableMenuKeyInLockScreen">false</bool>

    改为true 即可禁用该功能。

    在5.1中

    :~/code/ardroid5.1/frameworks/base/packages/Keyguard$ grep -rin "config_disableMenuKeyInLockScreen" ./
    ./res/values/config.xml:30:    <bool name="config_disableMenuKeyInLockScreen">false</bool>
    ./src/com/android/keyguard/KeyguardViewBase.java:412:        final boolean configDisabled = res.getBoolean(R.bool.config_disableMenuKeyInLockScreen);
    :~/code/ardroid5.1/frameworks/base/packages/Keyguard$ grep -rin "configDisabled" ./
    ./src/com/android/keyguard/KeyguardViewBase.java:412:        final boolean configDisabled = res.getBoolean(R.bool.config_disableMenuKeyInLockScreen);
    ./src/com/android/keyguard/KeyguardViewBase.java:415:        return !configDisabled || isTestHarness || fileOverride;
    :~/code/ardroid5.1/frameworks/base/packages/Keyguard$ vim ./src/com/android/keyguard/KeyguardViewBase.java +415


    private static final String ENABLE_MENU_KEY_FILE = "/data/local/enable_menu_key";
        private boolean shouldEnableMenuKey() {
            final Resources res = getResources();
            final boolean configDisabled = res.getBoolean(R.bool.config_disableMenuKeyInLockScreen);
            final boolean isTestHarness = ActivityManager.isRunningInTestHarness();
            final boolean fileOverride = (new File(ENABLE_MENU_KEY_FILE)).exists();
            return !configDisabled || isTestHarness || fileOverride;
        }


    :~/code/ardroid5.1/frameworks/base/packages/Keyguard$ grep -rin "shouldEnableMenuKey" ./
    ./src/com/android/keyguard/KeyguardViewBase.java:410:    private boolean shouldEnableMenuKey() {
    ./src/com/android/keyguard/KeyguardViewBase.java:421:        if (shouldEnableMenuKey() && !mLockPatternUtils.isSecure()) {
    :~/code/ardroid5.1/frameworks/base/packages/Keyguard$ vim ./src/com/android/keyguard/KeyguardViewBase.java +421

        public boolean handleMenuKey() {
            // The following enables the MENU key to work for testing automation
            if (shouldEnableMenuKey() && !mLockPatternUtils.isSecure()) {
                dismiss();
                return true;
            }
            return false;
        }

    :~/code/ardroid5.1/frameworks/base/packages/SystemUI$ grep -rin "handleMenuKey" ./
    ./src/com/android/systemui/statusbar/phone/KeyguardBouncer.java:226:        if (mKeyguardView.handleMenuKey()) {

        public boolean onMenuPressed() {
            ensureView();
            if (mKeyguardView.handleMenuKey()) {

                // We need to show it in case it is secure. If not, it will get dismissed in any case.
                mRoot.setVisibility(View.VISIBLE);
                mKeyguardView.requestFocus();
                mKeyguardView.onResume();
                return true;
            } else {
                return false;
            }
        }

    :~/code/ardroid5.1/frameworks/base/packages/SystemUI$ grep -rin "onMenuPressed" ./
    ./src/com/android/systemui/statusbar/phone/KeyguardBouncer.java:224:    public boolean onMenuPressed() {
    ./src/com/android/systemui/statusbar/phone/PhoneStatusBar.java:3875:    public boolean onMenuPressed() {
    ./src/com/android/systemui/statusbar/phone/PhoneStatusBar.java:3876:        return mState == StatusBarState.KEYGUARD && mStatusBarKeyguardViewManager.onMenuPressed();
    ./src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java:406:    public boolean onMenuPressed() {
    ./src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java:407:        return mBouncer.onMenuPressed();
    ./src/com/android/systemui/statusbar/phone/StatusBarWindowView.java:132:                    return mService.onMenuPressed();

    ./src/com/android/systemui/statusbar/phone/StatusBarWindowView.java:132:                    return mService.onMenuPressed();
        @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
            switch (event.getKeyCode()) {
                case KeyEvent.KEYCODE_BACK:
                    if (!down) {
                        mService.onBackPressed();
                    }
                    return true;
                case KeyEvent.KEYCODE_MENU:
                    if (!down) {
                        return mService.onMenuPressed();
                    }

  • 相关阅读:
    使用微软TFS代码管理工具和在金山快盘上搭建SVN的使用方法
    微软的Windows8安装体验
    软件注册码随笔
    软件注册码(算法一DES)
    PHP连接SAE平台MYSQL
    一点一滴《C++处理数据》
    BouncyCastle.Crypto的RSA算法调用源码
    一点一滴《C++学习》
    软件注册码(算法二Rijndael)
    Web 应用程序的程序常见安全防范
  • 原文地址:https://www.cnblogs.com/xiayexingkong/p/4601778.html
Copyright © 2011-2022 走看看