android虚拟键盘disable与enable

Posted endian11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android虚拟键盘disable与enable相关的知识,希望对你有一定的参考价值。

  • 代码如下
    /**
     * androidUSBCamera-master
     * Created by lzw on 2018/6/20. 10:53:22
     * 邮箱:[email protected]
     * All Rights Saved! Chongqing AnYun Tech co. LTD
     */
    public class ShieldUtil {
        public static final String STATUS_BAR_SERVICE = "statusbar";
        public static final String CLASS_STATUS_BAR_MANAGER = "android.app.StatusBarManager";
        public static final String METHOD_DISABLE = "disable";
        public static final String METHOD_ENABLE = "enable";
    
        public static void hideKeys(Context context){
            try {
                @SuppressLint("WrongConstant") Object service = context.getSystemService(STATUS_BAR_SERVICE);
                Class<?> statusBarManager = Class.forName(CLASS_STATUS_BAR_MANAGER);
                Method disable = statusBarManager.getMethod(METHOD_DISABLE,
                        int.class);
    //          disable.invoke(service, 0x00200000); // 为View.STATUS_BAR_DISABLE_HOME 的值
    //          disable.invoke(service, 0x00400000); // 为View.STATUS_BAR_DISABLE_BACK  的值
                disable.invoke(service,  0x00200000|0x01000000); // 为View.STATUS_BAR_DISABLE_RECENT的值
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void showKeys(Context context){
            try {
                @SuppressLint("WrongConstant") Object service = context.getSystemService(STATUS_BAR_SERVICE);
                Class<?> statusBarManager = Class.forName(CLASS_STATUS_BAR_MANAGER);
                Method disable = statusBarManager.getMethod(METHOD_DISABLE,
                        int.class);
    
                disable.invoke(service,  0x00000000|0x00000000); // 为View.STATUS_BAR_DISABLE_RECENT的值
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

      

  • 注意:只能在有系统权限下使用,也就是在AndroidManifest.xml里面有
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        android:sharedUserId="android.uid.system"
        package="com.jiangdg.usbcamera">
    

      

  • 需要有权限
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
    

      

  • 所以这就决定了只能再自己有源码不是定制android系统的设备上有效果

以上是关于android虚拟键盘disable与enable的主要内容,如果未能解决你的问题,请参考以下文章

android:state_enabled有啥作用

Android:DownloadManager 和 COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED

Android Gradle 插件LintOptions 配置 ⑥ ( checkReleaseBuilds 属性配置 | disable 属性配置 | enable 属性配置 )

eclipse,android虚拟机按键不可用解决方法hardware buttons not enabled in avd

disabled和enabled是啥意思?

Android 设置对话框中的确定按钮的 enabled 属性