美文网首页
Android手机屏蔽状态栏下拉

Android手机屏蔽状态栏下拉

作者: 蘑菇v5 | 来源:发表于2019-01-04 16:27 被阅读95次

    【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!

    一、前言:

    如果是系统级应用,也就是手机厂家植入的应用,比较简单,修改frameworks里代码, 可以参考:基于Android6.0源码修改屏蔽系统下方的虚拟按键以及上方的状态栏。但是如果是在应用层上的,这里使用StatusBarManager实现此功能,StatusBarManagerAndroid许多隐藏Service中的其中之一,该Service不对外提供,如果我们要使用的话可以通过反射来获取其方法。因为权限问题无法使用(如果一定要使用必须具有系统签名),只能做在定制机上,如果你想做在第三方应用上发布,其设备是没有办法使用隐藏的方法


    二、准备:

    • 签名文件
    • APP程序

    三、实现步骤:

    1.在AndroidManifest.xml中添加权限
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
    <uses-permission android:name="android.permission.STATUS_BAR"/>
    
    2.在相应的activity中添加
      @Override
        public void onWindowFocusChanged(boolean hasFocus) {
            disableStatusBar();
            super.onWindowFocusChanged(hasFocus);
        }
        public void disableStatusBar(){
            Object service = getSystemService("statusbar");
            try {
                Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
                Method expand = statusBarManager.getMethod("disable", int.class);
                //判断版本大小
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                    expand.invoke(service, DISABLE_EXPAND);
                }else {
                    expand.invoke(service, DISABLE_EXPAND_LOW);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    注意:0x000100000x00000001是不同版本下禁止下拉的整形标识,如果我们想还原下拉,只需要将整形标识改为0x00000000即可

    3.签名

    需要签名,属于系统操作,特定签名文件如下:


    签名
    4.签名命令
    java -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk newApp.apk
    

    相关文章

      网友评论

          本文标题:Android手机屏蔽状态栏下拉

          本文链接:https://www.haomeiwen.com/subject/hghkrqtx.html