2016-12-26 7 views
0

я андроид приложения, где в деятельности пользователь выбирает картинку из памяти телефона, чтобы загрузить его на сервер, используя Action Pick пристальногозагрузка файлов из телефона намерения

Intent i = new Intent(Intent.ACTION_PICK, 
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    startActivityForResult(i, RESULT_LOAD_IMAGE); 

Однако; теперь требования изменились, и клиент хочет загрузить любой файл с любым расширением, какое намерение я должен использовать, чтобы открыть память телефона (например, файловый менеджер) и выбрать все, что я хочу?

Теперь Я использую Получить содержание намерений, благодаря вам, ребята:

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

, но проблема заключается в запуске деятельности в результате

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == Activity.RESULT_OK) { 
     if (requestCode == 1) { 
      Log.d("select pivture", "passed her"); 
      Uri selectedMediaUri = data.getData(); 

      String Fpath = selectedMediaUri.getPath(); 

      Log.d("Fpath", Fpath); 
} 

я получаю следующим образом:

/document/primary:Download/tool208.pdf 

Что не то, что я хочу, мне нужен путь, как этот:

/external/images/media/6634 
+0

проверить эту ссылку. http://code.google.com/p/android-file-dialog/ – Noorul

+0

вы можете сделать это как Uri. – Noorul

+0

Uri.parse (filePath). – Noorul

ответ

0

Использование ниже метода:

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

UPDATE

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
      super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode==PICKFILE_REQUEST_CODE){ 
     } 
} 
+0

Примечание: на вашем телефоне должно быть приложение внешнего проводника файлов. – Noorul

+0

Я не могу выбрать pdf-файлы, почему? –

+0

'file/*' не является допустимым типом MIME. Используйте '*/*'. – CommonsWare