寫得不清不楚的 很有台灣妓者的風格 反正看不懂不是我的問題 稿費我照拿
這是因為Scoped Storage(新的檔案存取權限控制)的原因,它的原理簡單來說就是讓每個
APP都有獨立的沙盒(對,跟iOS類似)
節錄ithome的文章:
Android Q為了增加其安全性,在其核心加入了應用程式沙盒的概念,只要是未經授權的
應用程式,都只能在沙盒中執行,Android Q會為每個應用程式都創建獨立的儲存沙盒,
限制應用程式互相存取那些儲存在外部儲存的檔案,要求應用程式在獲得額外授權之後,
才能存取照片、影片或是音訊等共享檔案。由於Scoped Storage功能的加入,賦予
Android Q具有更細緻的控制媒體存取權限的能力。
https://www.ithome.com.tw/news/130306
而且androidpolice也有說明原因:
當APP在沒有獲得相關權限下啟動時,檢視部分資料夾的權限會只有唯獨,而不能寫入。
如果取得權限後,APP本身要再更新一次檢視資料夾的權限。但因為Android R的資料系統本
身設計的關係,要在APP執行下重整檢視權限是不可能的。
https://i.imgur.com/oOWTTG8.gif
不過Google Issue裡面 Google的人有提到這問題已經加入新功能計畫裡了,之後有機會改
掉這奇怪邏輯
然後他們也確認了,這只會發生一次,再根據Android Police的文章
可以得知這個在每個APP只會要求一次權限,也就是說取得一次就不會每次再閃退你了
(點進去蠻好笑的 開發者氣到不行 這真的是一個很差的UX體驗 Google官方跟機器人一樣
一直回覆說將會改進XD)
https://issuetracker.google.com/issues/157681335
結論:在安裝APK時如果沒有取得寫入權限,Google會聰明的幫你殺死APP後再幫你取得權限
等到之後要再次安裝APK時就不用每次被殺死了