Android手机屏蔽状态栏下拉

2019-01-04  本文已影响95人  蘑菇v5

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

一、前言:

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


二、准备:


三、实现步骤:

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
上一篇下一篇

猜你喜欢

热点阅读