Android-記錄一個Android11以上機型內部更新失敗的問題

圖片來源網絡,入侵必刪

上周發了一個版本,因為升級了一些開源庫,我把項目的targetSdk調到了31,這樣導致我發上去的版本會出現問題。問題是在Android11以上的設備出現沒有文件儲存權限,導致內部更新失敗。

主要的問題是:

Android 10之后,官方對文件管理進行了分區。

雖然我們看到了是獲取了文件儲存權限,但是很尷尬的事情是,我們不是訪問所有文件的權限。

解決方案

這里使用XXPermissions權限框架申請權限的,具體的代碼如下:

XXPermissions.with(this)
          .permission(Permission.MANAGE_EXTERNAL_STORAGE)
          .request(new OnPermissionCallback() {

             @Override
             public void onGranted(List<String> permissions, boolean all) {
                   if (all) {
                       // 有權限的邏輯
                       checkDownload();
                   }else {
                       // 沒有權限的邏輯
                  }

              @Override
             public void onDenied(List<String> permissions, boolean never) {}
});

這個框架有幫我們判斷是Android 10以上還是Android 10以下申請文件儲存權限,相對來說比較簡單。這里需要注意的是,我們申請的權限是Permission.MANAGE_EXTERNAL_STORAGE,不要搞錯了。

如果想要開發中復測這個問題,需要使用非鴻蒙系統的設備,這個問題是在VIVO設備上面發現的。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容