簡體   English   中英

將文件保存到Android Lollipop上的SD卡

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM