Как я могу использовать Intent.ACTION_VIEW для просмотра содержимого папки? - PullRequest
5 голосов
/ 25 февраля 2011

Я пытаюсь просмотреть изображения в определенной папке с помощью намерения.Мой код выглядит следующим образом:

Intent intent = new Intent();  
intent.setAction(Intent.ACTION_VIEW);  
Uri imgUri = Uri.parse("file://sdcard/download");  
intent.setDataAndType(imgUri, "image/*");  
startActivity(intent);  

Однако при каждом запуске я получаю это сообщение в журнале:

02-25 00: 40: 16.271: ОШИБКА /(8359): невозможно открыть '/ загрузить'
02-25 00: 40: 16.271: ОШИБКА / (8359): невозможно открыть '/ загрузить'

Что яделать неправильно?

Ответы [ 4 ]

1 голос
/ 23 января 2012

попробуйте что-то вроде этого

Intent intent = new Intent();
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

или

Intent intent = new Intent();
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);
1 голос
/ 14 мая 2011

Я думаю, что это намного проще, чем все остальные предлагают. Я считаю, что путь чувствителен к регистру. В вашем примере «file: // sdcard / Download» должен работать.

0 голосов
/ 18 декабря 2012
Intent intent = new Intent();  
intent.setAction(Intent.ACTION_GET_CONTENT);
Uri imgUri = Uri.fromFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
intent.setDataAndType(imgUri, "file/*");   
startActivity(intent);

у меня работает ..

0 голосов
/ 08 июня 2012

У меня была похожая проблема некоторое время назад, когда у меня был экземпляр, который требовал, чтобы я дал пользователю возможность выбрать фотографию из заранее определенного места.Рабочее решение для этого, которое я сейчас использую, требует, чтобы у вас уже был какой-то менеджер файлов на устройстве.Тот, который я использую, называется «Диспетчер файлов OI».Скачать бесплатно с Android / Play market.С учетом вышесказанного вы можете попытаться использовать:

 //--Note: You can supply the full location of the folder but if you don't know it and
//         if the folder location is on the sdcard, provide the following:
 File root = new File(Environment.getExternalStorageDirectory() + File.separator + "myFolder" + File.separator);
 Uri uri = Uri.fromFile(root);

 Intent intent = new Intent();
 intent.setAction(android.content.Intent.ACTION_VIEW);
 intent.setData(Uri.fromFile(root));
 startActivityForResult(intent, PIC_REQUEST);

Что это сделает, это откроет диалоговое окно с просьбой выбрать опцию для обработки запроса.Когда это произойдет, просто установите флажок в нижнем углу «Использовать по умолчанию ...», прежде чем выбрать опцию «Диспетчер файлов OI».Это установит его так, чтобы при каждом запуске намерения оно автоматически открывало указанное вами местоположение, чтобы вы могли просматривать содержимое без необходимости детализировать местоположение папки каждый раз при запуске намерения.Не стоит полагаться на стороннее приложение, но это может быть вариантом для вас.

...