Android平台應用啟動時讀寫手機存儲、訪問設備信息(如IMEI)等權限策略及提示信息


一、現象

1、我們發現您的應用提示獲取“存儲”等敏感權限,用戶不同意時強制退出應用。

 

二、解決

HBuilderX2.5.0+開始支持配置應用啟動時申請獲取手機存儲權限,支持以下三種策略
none 應用啟動時不申請
once 應用第一次啟動時申請,用戶可以拒絕
always 應用每次啟動都申請,並且用戶必須允許,用戶拒絕時會彈出以下提示框引導用戶重新允許

 

1、雲打包

打開manifest.json文件,切換到“源碼視圖”項

uni-app項目
在"app-plus" -> "distribute" -> "android" 節點下添加 permissionExternalStorage 節點
5+ App項目
在 "plus" -> "distribute" -> "google" 節點下添加 permissionExternalStorage 節點

(1)、存儲權限提示語配置 

"permissionExternalStorage" : {
  "request" : "once",
  "prompt" : "應用保存運行狀態等信息,需要獲取讀寫手機存儲(系統提示為訪問設備上的照片、媒體內容和文件)權限,請允許。"
}

(2)、讀取手機狀態權限配置
"permissionPhoneState" : {
  "request" : "once",
  "prompt" : "為保證您正常、安全地使用,需要獲取設備識別碼(部分手機提示為獲取手機號碼)使用權限,請允許。"
},

如:

 

2、離線打包

  == 提示語配置: 在主項目的strings.xml中添加如下字段。strings.xml位於 項目目錄/src/main/res/values下,如果文件或文件夾不存在,直接新建即可。

(1)、存儲權限提示語配置

  <resources>

    <string name="dcloud_permission_write_external_storage_message">應用保存運行狀態等信息,需要獲取讀寫手機存儲(系統提示為訪問設備上的照片、媒體內容和文件)權限,請允許。</string>

  </resources>

(2)、讀取手機狀態權限配置

  <resources>

    <string name="dcloud_permission_read_phone_state_message">為保證您正常、安全地使用,需要獲取設備識別碼(部分手機提示為獲取手機號碼)使用權限,請允許。</string>

  </resources>

 

 

 

 

 

 

  == 彈窗配置: 在androidManifest.xml的application節點下添加如下字段。

(2)、存儲權限彈窗配置

  <application>

    <meta-data android:name="DCLOUD_WRITE_EXTERNAL_STORAGE" android:value="once"/>

  </application>

(2)、讀取手機狀態彈窗配置

  <application>

    <meta-data android:name="DCLOUD_READ_PHONE_STATE" android:value="once"/>

  </application>

 

 

 

 

 

 

 

三、總結 

官方鏈接: https://ask.dcloud.net.cn/article/36549

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM