--關於Android動態許可權和targetSdkVersion
Android系統自6.0開始,提供動態許可權機制,對於敏感許可權(儲存,定位,錄音,拍照,錄影等),需要在APP執行過程中動態向使用者申請,這點和IOS系統使用體驗一致。
在Android上使用動態許可權,要求APP編譯的目標sdk(即targetSdkVersion)為23及以上,22及以下系統會執行預設處理(手機廠商也可能定製處理),APICloud為簡便開發,預設配置targetSdkVersion為20,即走系統預設處理,不允許更改。
複製程式碼
--有許多原生APP轉到APICloud開發後,因targetSdkVersion降級而導致無法覆蓋安裝;另外自2018年11月開始,GooglePlay將要求APP編譯目標sdk必須為26及以上,否則不予提交稽核。
--現介紹如何自定義編譯targetSdkVersion值:
1、下載附件中的manifest.xml,將其中的targetSdkVersion更新為目標值,例如26; 2、將manifest.xml置於你的/專案程式碼/res/目錄下(widget/res/manifest.xml),提交程式碼; 3、雲編譯介面勾選APP所需的許可權;
4、使用升級環境編譯 即可。
--注意:當你設定的targetSdkVersion大於等於23時,即開啟了動態許可權,如果你的APP帶有定位,錄音,拍照,錄影等敏感功能時(所有許可權見文件),必須使用動態許可權機制,先判斷是否具有該功能操作許可權,再進行操作,如果不具備相應的許可權,對應的功能是失效的(也可能導致崩潰)。涉及的兩個API:hasPermission | requestPermission
補充:當你設定的targetSdkVersion大於等於23時,如果是編譯自定義loader,安裝到手機後,需要先在設定中給應用開啟儲存空間許可權。否則,WiFi同步後,loader無法正常載入程式碼。
為保證動態許可權盡可能適配更多廠商的手機以及順利上線Google Play,targetSdkVersion目前推薦設定為26.