全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android开发实现应用层面屏蔽状态栏的方法小结

本文实例讲述了Android开发实现应用层面屏蔽状态栏的方法。分享给大家供大家参考,具体如下:

一、由于StatusBarManager在SDK中没有提供,所以需要使用反射来调用该类的方法

代码部分如下:

Object service = getSystemService("statusbar");
try {
    Class <?> statusBarManager = Class.forName("Android.app.StatusBarManager");
    Method expand = statusBarManager.getMethod("disable",int.class);
    expand.invoke (service,0×00000001);
} catch (Exception e) {
    e.printStackTrace();
}

禁用通知栏需要添加以下权限并使用系统签名:

<uses-permission android:name="android.permission.STATUS_BAR"/>
<uses-permission android:name="android.permission.DISABLE_STATUS_BAR"/>

网上资料中有提到如果没有使用系统签名则会报如下错误

Caused by: Java.lang.SecurityException: StatusBarManagerService: Neither user 10072 nor current process has android.permission.STATUS_BAR.

在使用系统签名之前需要

1.在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"
2.修改Android.mk文件,加入LOCAL_CERTIFICATE:=platform

让程序运行到系统进程中

Android中使应用程序获得系统签名权限方法:

1.需要在Android系统源码的环境下用make来编译

(1)在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"
(2)修改Android.mk文件,加入LOCAL_CERTIFICATE:=platform
(3)使用mm命令来编译生成APK即可

2.不需要在系统源码环境下编译

(1)在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"
(2)使用eclipse编译出APK文件,此时的APK文件不可用
(3)用压缩软件打开APK文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件
(4)使用目标系统的platform密钥来重新给APK文件签名。首先要找到密钥文件,如"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件,然后用Android提供的SignApk工具来签名,该工具源码在"build\tools\signapk"下,用法是"signapk platform.x509.pem platform.pk8 input.apk output.apk"

原理:

首先加入android:sharedUserId="android.uid.system"这个属性,通过SharedUserId拥有同一个User ID的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,就具有相应的权限了。

但是只是加入UID还不够,这时候的APK是无法安装的,因为签名不符。程序想要运行在系统进程中还要有目标系统的platform key,就是上面第二个方法中的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中,第一个方法的LOCAL_CERTIFICATE:=platform其实就是用这两个key签名

这也有一个问题,就是这样生成的程序只有在原始的Android系统或自己编译的系统中才可用,因为这样的系统才可以拿到platform.pk8和platform.x509.pem两个文件,要是别家公司的Android系统连安装都安装不了。目前只是整理了资料,还没有进行实际开发,之后如果有实际应用这部分内容,会将最后结果整理发布。

二、如果是系统级应用,也就是手机厂家植入的应用,可以使用disable(int)的方法来进行屏蔽,参数如上源码五个参数之一即可。但是如果是在应用层上的,disable方法因为权限问题无法使用(如果一定要使用必须具有系统签名)。这个时候可以使用collapse()方法,现在的小米锁屏和360锁屏都是使用该方法,具体代码如下:

public void disableStatusBar(){
    try {
      Object service = getSystemService("statusbar");
      Class<?> claz = Class.forName("android.app.StatusBarManager");
      Method expand = claz.getMethod("collapse");
      expand.invoke(service);
    } catch (Exception e) {
      e.printStackTrace();
    }
}

重写activity的onWindowfocuschanged方法,执行如上操作即可。 但是此种方法有严重的适配性问题,不同的系统下的回滚方法名不一样,需要对所有版本进行适配,非常繁琐。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 应用层面  # 屏蔽  # 状态栏  # android 动态控制状态栏显示和隐藏的方法实例  # Android 去掉状态栏的方法汇总  # Android 实现沉浸式状态栏的方法  # Android自定义状态栏颜色与应用标题栏颜色一致  # Android实现的状态栏定制和修改方法  # Android 取得状态栏、任务栏高度的小例子  # Android之沉浸式状态栏的实现方法、状态栏透明  # Android 4.4以上"沉浸式"状态栏效果的实现方法  # Android 状态栏虚拟导航键透明效果的实现方法  # Android编程实现禁止StatusBar下拉的方法  # Android编程实现禁止状态栏下拉的方法详解  # 应用程序  # 这两个  # 可以使用  # 都是  # 进阶  # 是在  # 还没有  # 相关内容  # 第一个  # 多个  # 要有  # 中有  # 要在  # 感兴趣  # 这也  # 这部  # 第二个  # 给大家  # 才可以  # 如果没有 


相关文章: 娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  潮流网站制作头像软件下载,适合母子的网名有哪些?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何在宝塔面板中修改默认建站目录?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  如何选择高性价比服务器搭建个人网站?  建站之星伪静态规则如何正确配置?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  如何选择高效便捷的WAP商城建站系统?  如何零基础在云服务器搭建WordPress站点?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  实现虚拟支付需哪些建站技术支撑?  大连网站制作公司哪家好一点,大连买房网站哪个好?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  ,柠檬视频怎样兑换vip?  动图在线制作网站有哪些,滑动动图图集怎么做?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  高性价比服务器租赁——企业级配置与24小时运维服务  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  建站主机如何安装配置?新手必看操作指南  专业公司网站制作公司,用什么语言做企业网站比较好?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  建站之星2.7模板:企业网站建设与h5定制设计专题  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  怎么将XML数据可视化 D3.js加载XML  如何通过FTP服务器快速搭建网站?  建站之星CMS五站合一模板配置与SEO优化指南  Android自定义listview布局实现上拉加载下拉刷新功能  香港服务器WordPress建站指南:SEO优化与高效部署策略  宝塔建站后网页无法访问如何解决?  如何通过FTP空间快速搭建安全高效网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  IOS倒计时设置UIButton标题title的抖动问题  建站之星安装需要哪些步骤及注意事项?  如何有效防御Web建站篡改攻击?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  广德云建站网站建设方案与建站流程优化指南  宝塔新建站点报错如何解决?  微信小程序 五星评分(包括半颗星评分)实例代码  建站之星如何实现网站加密操作?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  h5网站制作工具有哪些,h5页面制作工具有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。