您好,登錄后才能下訂單哦!
前言
Android 8.0系統更新之后,app的更新將不再像之前的系統版本一樣能夠直接下載安裝包之后直接安裝(以前安裝未知來源應用的時候一般會彈出一個彈窗讓用戶去設置允許還是拒絕,并且設置為允許之后,所有的未知來源的應用都可以被安裝),8.0需要用戶給予允許app安裝未知來源應用的權限(比如你的app 名字為A,當你需要更新時,則需要使用app的用戶 授權A這個app 允許安裝未知來源的權限,才能完成正常的更新操作)。
Android8.0的變化是,未知應用安裝權限的開關被除掉,取而代之的是未知來源應用的管理列表,需要在里面打開每個應用的未知來源的安裝權限(說實話,這個權限要找到還真的不是那么容易,我第一次就找了半天才找到。。也是尷尬)。Google這么做是為了防止一開始正經的應用后來開始通過升級來做一些不合法的事情,侵犯用戶權益。當你的應用直接適配到Android8之后,內部啟動應用安裝是會被阻塞的,如果不處理好這個未知來源的權限,會導致應用根本無法更新,只能去應用市場重新下載。
好了,廢話不多說,最近適配了8.0的檢查更新的功能,包括通過uri安裝和notification提示進度。網上的例子很多 但是都很坑,需要加權限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
這個權限是不需要動態申請的。一些坑人的帖子還寫的很有道理的樣子,要申請 并沒有什么卵用。
下邊說一下具體的適配步驟及注意事項:
1、添加權限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
2、動態申請權限在這里簡單說下:
manifest里添加
在res目錄下添加xml目錄
3、關于URI獲取的工具類(可加群195026919在群共享獲取),由于排版問題 只能截圖了。
4、調用方式,調用安裝代碼
所有的URI獲取 都用下邊代碼
Uri uri = FileProvider7.getUriForFile(context,updateFile);
安裝apk代碼
調用之后會彈出下邊這樣的提示框,而不是一個應用加載列表手動選擇點擊授權。
5、通知欄notification注意事項
用下邊的版本進行編譯項目 之前Notification.Builder的方式能支持8.0 的手機,但是如果用26去編譯在8.0上就會有問題了notification不會出現等問題,notification的在一些8.0以下的個別的手機上也會有問題,特別是小米的。一些參數得單獨設置,
<uses-sdk android:minSdkVersion=”8″ android:targetSdkVersion=”23″ />
在適配8.0手機的時候最好用
NotificationChannel來去實現通知欄,免得以后再出現兼容的問題。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。