2017-06-27 45 views
0

我正在寫一個功能的應用程序,用戶可以選擇一個文件夾來保存圖像。用戶選擇一次,圖像保存在後臺,無需用戶干預。內容的URI和本地化

我使用ACTION_OPEN_DOCUMENT_TREE意圖爲用戶允許用戶選擇一個文件夾 (或其他內容提供商):

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); 
startActivityForResult(intent, DirectoryPickerRequest); 

這一切工作正常,我正確地從活動得到了烏里結果:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == Activity.RESULT_OK) { 
     if (requestCode == DirectoryPickerRequest) { 
      Uri treeUri = data.getData(); 
      mDirectory.setText(treeUri.toString()); 
     } 
    } 
} 

我的問題是開放的返回是這樣的: content://com.android.externalstorage.documents/tree/primary%3AOutput%2FDirectory

這很好,但是如何以任何形式的本地化方式將其顯示給用戶?我希望用戶能夠在點擊保存前確認位置。例如,如果這是一個文件,我想在這種情況下向他們展示"The/Output/Directory/They/Selected"。我的理解是,它不一定是一個文件,所以我不能假裝它是一個文件,並使用文件API來獲取路徑。

有沒有一個通用的和本地化的方式來做到這一點?

謝謝!

回答

1

但我該如何以任何形式的本地化方式將其顯示給用戶?

裹,在使用fromTreeUri()一個DocumentFile,然後呼籲DocumentFilegetName()。這將得到一個「顯示名稱」。它應該是用戶會認識的東西。

例如,如果這是我想向他們展示一個文件,在這種情況下

那是不可能的「/輸出/目錄/他們/選擇」。沒有要求文檔樹以任何形式或方式存在於文件系統中。例如,他們可能會在Google雲端硬盤中創建一棵樹。