一個新的測驗機在自動下載升級安裝更新版本APP時,報出“決議程式包時出現問題”錯誤,原因眾說紛紜, 一番搜索,下面的回答比較全面:
https://stackoverflow.com/questions/39147608/android-install-apk-with-intent-view-action-not-working-with-file-provider
簡單總結:
1. 安卓7以下一般問題不大
2. 安卓7及以上需要使用FileProvider
3. 安卓7.1 需要在清單中增加 REQUEST_INSTALL_PACKAGES 權限
4. 安卓8 需要授權允許應用安裝未知應用,在應用權限中設定,(此次問題)
另,
1. 注意檢查是否有外存盤器的讀寫權限, 如果沒有就無法正常下載程式,
2. 應用權限是否被允許"安裝未知應用",可以如下這樣判斷, 坑:但targetSdkVersion需要至少為26,否則下面的方法永遠回傳false;
this.getPackageManager().canRequestPackageInstalls()
判斷后可以幫助用戶跳轉到設定頁面引導用戶設定,也可以讓用戶自行通過系統設定的應用權限管理設定,
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);
一些定制android系統高于安卓8不進行步驟四,也是可以安裝的,而有些則不可以, 唉,安卓的碎片化~,,,
本文來自博客園,作者:Uncle鍋
轉載請注明原文鏈接:https://www.cnblogs.com/uncleguo/p/15958383.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/436999.html
標籤:其他
