2014-05-21 19 views
1

我一直在試圖找出一種方式,我的應用程序打開文件瀏覽器,用戶可以選擇視頻文件,並有我的應用程序商店,路徑轉換爲字符串到以後使用。有沒有我可以使用或功能的意圖?有什麼建議麼?的Android:開放fileBrowser獲取文件路徑

+0

我不知道你問什麼。 – dhams

+0

我在問我如何讓我的應用程序打開文件瀏覽器,以便用戶可以選擇一個視頻。然後,我的應用程序將獲得用戶選擇的視頻路徑並將其存儲到一個字符串中。 – JohnnyWineShirt

回答

1

下面是我用我以前的項目之一代碼。

Intent intent = new Intent(); 
intent.setType("video/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(intent,"Select Video "), 33); 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == 33) { 
      Uri selectedMediaUri = data.getData(); 
      filemanagerstring = selectedMediaUri.getPath(); 
      selectedMediaPath = getPath(selectedMediaUri); 
      if (!selectedMediaPath.equals("")) { 
       filePath = selectedMediaPath; 
      } else if (!filemanagerstring.equals("")) { 
       filePath = filemanagerstring; 
      } 
      int lastIndex = filePath.lastIndexOf("/"); 
      fileName = filePath.substring(lastIndex+1); 
      //filepath is your file's path 
     } 
    } 
} 
public String getPath(Uri uri) { 
    String[] projection = { MediaStore.MediaColumns.DATA }; 
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null); 
    if (cursor != null) { 
     // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL 
     // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA 
     int column_index = cursor 
       .getColumnIndexOrThrow(MediaStore.MediaColumns.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } else 
     return ""; 
} 
0

使用以下代碼。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
     intent.setType("file/*"); 
    startActivityForResult(intent,PICKFILE_RESULT_CODE); 

,並在活動導致你的文件路徑。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
// TODO Auto-generated method stub 
switch(requestCode){ 
case PICKFILE_RESULT_CODE: 
if(resultCode==RESULT_OK){ 
String FilePath = data.getData().getPath(); 
textFile.setText(FilePath); 
} 
break; 

} 
} 
3

您可以通過意向選擇器來實現。試試這個代碼,我認爲這個解決方案解決了你的目的。

    Intent intent = new Intent(); 
        intent.addCategory(Intent.CATEGORY_OPENABLE); 
        // Set your required file type 
        intent.setType("*/*"); 
        intent.setAction(Intent.ACTION_GET_CONTENT); 
        startActivityForResult(Intent.createChooser(intent, "DEMO"),1001); 

然後onActivityResult方法。

public void onActivityResult(int requestCode, int resultCode, 
       Intent data) { 
      // TODO Auto-generated method stub 
      super.onActivityResult(requestCode, resultCode, data); 

      // super.onActivityResult(requestCode, resultCode, data); 

      if (requestCode == 1001) { 
       Uri currFileURI = data.getData(); 
       String path=currFileURI.getPath(); 
      }}