一個(gè)新的測試機(jī)在自動下載升級安裝更新版本APP時(shí),報(bào)出“解析程序包時(shí)出現(xiàn)問題”錯(cuò)誤。原因眾說紛紜, 一番搜索,下面的回答比較全面:
河南黨性培訓(xùn) tion-not--with-file-
簡單總結(jié):
1. 安卓7以下一般問題不大
2. 安卓7及以上需要使用
3. 安卓7.1 需要在清單中增加AGES 權(quán)限
4.安卓8 需要授權(quán)允許應(yīng)用安裝未知應(yīng)用,在應(yīng)用權(quán)限中設(shè)置。(此次問題)
另,
1. 注意檢查是否有外存儲器的讀寫權(quán)限, 如果沒有就無法正常下載程序。
2. 應(yīng)用權(quán)限是否被允許"安裝未知應(yīng)用",可以如下這樣判斷, 坑:但需要至少為26,否則下面的方法永遠(yuǎn)返回false;
this.getPackageManager().canRequestPackageInstalls()
判斷后可以幫助用戶跳轉(zhuǎn)到設(shè)置頁面引導(dǎo)用戶設(shè)置,也可以讓用戶自行通過系統(tǒng)設(shè)置的應(yīng)用權(quán)限管理設(shè)置。
Intent unknownAppSourceIntent = new Intent().setAction(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).setData(Uri.parse(String.format("package:%s",MainOneActivity.this.getPackageName())));startActivityForResult(unknownAppSourceIntent, UNKNOWN_APP_INSTALL);
一些定制系統(tǒng)高于安卓8不進(jìn)行步驟四,也是可以安裝的解析包程序出現(xiàn)錯(cuò)誤解析包程序出現(xiàn)錯(cuò)誤,而有些則不可以。 唉,安卓的碎片化~。。。