[英]Saving files to SD card on Android Lollipop
Android 5引入了用於使用SD卡的新API。 如果要將文件寫入SC卡上的某個目錄,則需要訪問它。 據我所知,可以通過以下方式完成:
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, 42);
接着:
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (resultCode == RESULT_OK) {
Uri treeUri = resultData.getData();
getActivity().getContentResolver().takePersistableUriPermission(treeUri,
Intent.FLAG_GRANT_READ_URI_PERMISSION |
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
}
此代碼啟動文件夾選擇器,當選擇文件夾時,它需要Uri對文件夾的權限。
但是是否有可能通過其路徑來獲得確切目錄的權限? 不使用文件夾選擇器。 我的意思是我知道要訪問的目錄,並且我不想啟動文件夾選擇器,因為它會使用戶感到困惑。
如何在沒有用戶交互的情況下打開DocumentFile
?
不可能。 用戶應使用android的文件選擇器選擇目錄。 訪問文件夾的唯一方法是使用:
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); startActivityForResult(intent, 42);
因為文件是由Storage Access Framework DocumentsProvider提供的。 實際上,它可以從第三方應用程序返回一些Uri,這不是真實文件,但可以從第三方應用程序返回作為文件的某個實體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.