隨著Android版本的不斷升級(jí),對(duì)于應(yīng)用權(quán)限的管理會(huì)更加苛刻。我司IAC-RK3568-Kit開(kāi)發(fā)板默認(rèn)搭載Android11,相比較之前RK3288的產(chǎn)品安卓版本變更較大,有些客戶反饋之前Android7.1自啟動(dòng)應(yīng)用的方法在高版本安卓上無(wú)法生效,今天就對(duì)此展開(kāi)討論。

在早期版本中,大多數(shù)自啟動(dòng)應(yīng)用的做法都是通過(guò)廣播接收器接收開(kāi)機(jī)廣播,然后直接啟動(dòng)自己的應(yīng)用,但是在高版本安卓中廣播接收器的權(quán)限被嚴(yán)格限制,所以在logcat中你可以發(fā)現(xiàn)自己的應(yīng)用并沒(méi)有正常起來(lái),并可能伴隨著ANR的發(fā)生或程序因?yàn)槟撤N超時(shí)被殺死的情況。
在高版本安卓中,服務(wù)的概念貫穿上層到底層,服務(wù)的便攜性以及承上啟下的作用使得它沒(méi)有很多限制,可以在滿足權(quán)限要求嚴(yán)格的廣播接收器中正常啟動(dòng),然后在服務(wù)中再自啟動(dòng)。所以具體根據(jù)需求我們需要重寫(xiě)相關(guān)方法,建立自己的服務(wù),在服務(wù)中啟動(dòng)我們自己的UI,如下圖所示:

服務(wù)的建立與啟動(dòng)邏輯完成之后,只需要在廣播接收器中拉起建立服務(wù)即可,如下圖所示:

當(dāng)然,這些任務(wù)做完之后,AndroidManifest.xml里的權(quán)限也需要得到補(bǔ)充

正常啟動(dòng)之后可以發(fā)現(xiàn)應(yīng)用已經(jīng)常駐后臺(tái),通過(guò)狀態(tài)欄可以看到應(yīng)用在持續(xù)的運(yùn)行中,那為什么沒(méi)有顯示到桌面launch前面呢?這主要是因?yàn)樽烂鎙aunch是系統(tǒng)級(jí)應(yīng)用,級(jí)別高于我們自己的應(yīng)用,所以不允許顯示在系統(tǒng)級(jí)應(yīng)用之前。
針對(duì)這個(gè)問(wèn)題,可以有兩種解決思路,一是通過(guò)系統(tǒng)簽名,將自己的應(yīng)用打上系統(tǒng)簽名,這樣就可以顯示在系統(tǒng)launch之前,二是通過(guò)修改安卓底層源碼,framwork層,更改應(yīng)用篩選條件,不再通過(guò)簽名的方式辨別系統(tǒng)級(jí)應(yīng)用還是我們自己的應(yīng)用,這樣也可以做到相同的效果。
-
Android
+關(guān)注
關(guān)注
12文章
4024瀏覽量
133977 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6289瀏覽量
118051 -
RK3568
+關(guān)注
關(guān)注
5文章
644瀏覽量
7938
發(fā)布評(píng)論請(qǐng)先 登錄
迅為iTOP-RK3568開(kāi)發(fā)板Android11移植之源碼結(jié)構(gòu)簡(jiǎn)介
【北京迅為】itop-rk3568開(kāi)發(fā)板官方Android11移植教程
【超前發(fā)布】瑞芯微RK3568視頻教程
迅為干貨 |瑞芯微RK3568開(kāi)發(fā)板Android11系統(tǒng)開(kāi)發(fā)筆記
【重磅來(lái)襲】迅為RK3568 Android11系統(tǒng)移植視頻教程
迅為RK3568開(kāi)發(fā)Android12系統(tǒng)燒寫(xiě) Android 固件
迅為RK3568開(kāi)發(fā)板Android11系統(tǒng)開(kāi)發(fā)筆記分享
iTOP-RK3568開(kāi)發(fā)板Android11設(shè)置語(yǔ)言和默認(rèn)時(shí)區(qū)
迅為iTOP-RK3568開(kāi)發(fā)板Android11移植之源碼結(jié)構(gòu)簡(jiǎn)介
瑞芯微RK3566/RK3568 Android11下該如何默認(rèn)屏蔽導(dǎo)航欄/狀態(tài)欄?看這篇文章就懂了
基于迅為RK3568開(kāi)發(fā)板全國(guó)產(chǎn)平臺(tái),快速實(shí)現(xiàn)APP開(kāi)機(jī)自啟動(dòng)技術(shù)分享
Android11修改攝像頭前后置方法,觸覺(jué)智能RK3568開(kāi)發(fā)板演示
RK3568 Android11編譯環(huán)境搭建及報(bào)錯(cuò)解決指南
技術(shù)分享 | RK3568 Android11 如何實(shí)現(xiàn)自啟動(dòng)應(yīng)用
評(píng)論