2016-05-04 80 views
1

我已將一堆視頻保存在內部存儲文件夾中。之後,我希望用戶能夠在此特定文件夾中選擇其中一個視頻。我試着用ACTION_GET_CONTENT試圖讓另一個應用程序爲我做這件事,但沒有成功,因爲它只是在其他目錄中打開一個文件瀏覽器。Android - 從內部存儲文件夾中選擇文件

我現在擁有的是:

public static File getOwnVideosDirectory(Context context) { 
    String ownVideosDirPath = 
      context.getFilesDir().getAbsolutePath() + File.separator + "OwnVideos"; 
    File ownVideosDir = new File(ownVideosDirPath); 
    if (!ownVideosDir.exists()) { 
     ownVideosDir.mkdirs(); 
    } 
    return ownVideosDir; 
} 

private void dispatchExistingVideo() { 
    Log.d(LOG_TAG, "> dispatchExistingVideo"); 
    Intent videoPicker = new Intent(Intent.ACTION_GET_CONTENT); 
    File ownVideosDir = Utility.getOwnVideosDirectory(getContext()); 
    videoPicker.setDataAndType(Uri.fromFile(ownVideosDir), "video/*"); 
    if (videoPicker.resolveActivity(getContext().getPackageManager()) != null) { 
     startActivityForResult(videoPicker, REQUEST_EXISTING_VIDEO); 
    } 
} 

所以我在想,我是不是做錯了什麼或者是不可能這樣的。如果不可能的話:是否有任何圖書館,...可以讓我做我想做的事,或者任何方向,我怎樣才能實現這個自己作爲最後的手段?

在此先感謝

+2

「我做錯了什麼或者是它不可能像這樣」 - 第三方應用程序都)沒有訪問您的文件在'getFilesDir('。 「是否有任何庫」 - 要求庫的推薦是堆棧溢出的主題。這就是說,[這裏有十個左右](http://android-arsenal.com/tag/35)。 – CommonsWare

回答

3

請看一看這個庫 - Material File Picker
它可以顯示使用.withPath(Utility.getOwnVideosDirectory(getContext()).getAbsolutePath())指定路徑的對話框。

整個創作代碼:

new MaterialFilePicker() 
    .withActivity(this) 
    .withRequestCode(1) 
    .withFilter(Pattern.compile(".*\\.txt$")) // Filtering files and directories by file name using regexp 
    .withFilterDirectories(true) // Set directories filterable (false by default) 
    .withHiddenFiles(true) // Show hidden files and folders 
    .withPath(Utility.getOwnVideosDirectory(getContext()).getAbsolutePath()) 
    .start(); 
相關問題