真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android開發(fā)如何實(shí)現(xiàn)應(yīng)用層面屏蔽狀態(tài)欄

這篇文章主要為大家展示了“Android開發(fā)如何實(shí)現(xiàn)應(yīng)用層面屏蔽狀態(tài)欄”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Android開發(fā)如何實(shí)現(xiàn)應(yīng)用層面屏蔽狀態(tài)欄”這篇文章吧。

大武口ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

具體如下:

一、由于StatusBarManager在SDK中沒有提供,所以需要使用反射來調(diào)用該類的方法

代碼部分如下:

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();
}

禁用通知欄需要添加以下權(quán)限并使用系統(tǒng)簽名:


網(wǎng)上資料中有提到如果沒有使用系統(tǒng)簽名則會(huì)報(bào)如下錯(cuò)誤

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

在使用系統(tǒng)簽名之前需要

1.在應(yīng)用程序的AndroidManifest.xml中的manifest節(jié)點(diǎn)中加入android:sharedUserId="android.uid.system"
2.修改Android.mk文件,加入LOCAL_CERTIFICATE:=platform

讓程序運(yùn)行到系統(tǒng)進(jìn)程中

Android中使應(yīng)用程序獲得系統(tǒng)簽名權(quán)限方法:

1.需要在Android系統(tǒng)源碼的環(huán)境下用make來編譯

(1)在應(yīng)用程序的AndroidManifest.xml中的manifest節(jié)點(diǎn)中加入android:sharedUserId="android.uid.system"
(2)修改Android.mk文件,加入LOCAL_CERTIFICATE:=platform
(3)使用mm命令來編譯生成APK即可

2.不需要在系統(tǒng)源碼環(huán)境下編譯

(1)在應(yīng)用程序的AndroidManifest.xml中的manifest節(jié)點(diǎn)中加入android:sharedUserId="android.uid.system"
(2)使用eclipse編譯出APK文件,此時(shí)的APK文件不可用
(3)用壓縮軟件打開APK文件,刪掉META-INF目錄下的CERT.SF和CERT.RSA兩個(gè)文件
(4)使用目標(biāo)系統(tǒng)的platform密鑰來重新給APK文件簽名。首先要找到密鑰文件,如"build\target\product\security",下面的platform.pk8和platform.x509.pem兩個(gè)文件,然后用Android提供的SignApk工具來簽名,該工具源碼在"build\tools\signapk"下,用法是"signapk platform.x509.pem platform.pk8 input.apk output.apk"

原理:

首先加入android:sharedUserId="android.uid.system"這個(gè)屬性,通過SharedUserId擁有同一個(gè)User ID的多個(gè)APK可以配置成運(yùn)行在同一個(gè)進(jìn)程中。那么把程序的UID配成android.uid.system,也就是要讓程序運(yùn)行在系統(tǒng)進(jìn)程中,就具有相應(yīng)的權(quán)限了。

但是只是加入U(xiǎn)ID還不夠,這時(shí)候的APK是無法安裝的,因?yàn)楹灻环?。程序想要運(yùn)行在系統(tǒng)進(jìn)程中還要有目標(biāo)系統(tǒng)的platform key,就是上面第二個(gè)方法中的platform.pk8和platform.x509.pem兩個(gè)文件。用這兩個(gè)key簽名后apk才真正可以放入系統(tǒng)進(jìn)程中,第一個(gè)方法的LOCAL_CERTIFICATE:=platform其實(shí)就是用這兩個(gè)key簽名

這也有一個(gè)問題,就是這樣生成的程序只有在原始的Android系統(tǒng)或自己編譯的系統(tǒng)中才可用,因?yàn)檫@樣的系統(tǒng)才可以拿到platform.pk8和platform.x509.pem兩個(gè)文件,要是別家公司的Android系統(tǒng)連安裝都安裝不了。目前只是整理了資料,還沒有進(jìn)行實(shí)際開發(fā),之后如果有實(shí)際應(yīng)用這部分內(nèi)容,會(huì)將最后結(jié)果整理發(fā)布。

二、如果是系統(tǒng)級(jí)應(yīng)用,也就是手機(jī)廠家植入的應(yīng)用,可以使用disable(int)的方法來進(jìn)行屏蔽,參數(shù)如上源碼五個(gè)參數(shù)之一即可。但是如果是在應(yīng)用層上的,disable方法因?yàn)闄?quán)限問題無法使用(如果一定要使用必須具有系統(tǒng)簽名)。這個(gè)時(shí)候可以使用collapse()方法,現(xiàn)在的小米鎖屏和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方法,執(zhí)行如上操作即可。 但是此種方法有嚴(yán)重的適配性問題,不同的系統(tǒng)下的回滾方法名不一樣,需要對(duì)所有版本進(jìn)行適配,非常繁瑣。

以上是“Android開發(fā)如何實(shí)現(xiàn)應(yīng)用層面屏蔽狀態(tài)欄”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文名稱:Android開發(fā)如何實(shí)現(xiàn)應(yīng)用層面屏蔽狀態(tài)欄
網(wǎng)頁地址:http://weahome.cn/article/igiphd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部