Я подаю заявку, которая требует, чтобы я перечислил все изображения, доступные на SD-карте телефона.
я пытался запросить ContentResolver путь т.е.
Cursor image = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI, new String[]{Images.Media._ID,Images.Media.DATA,Images.Media.DISPLAY_NAME}, null, null, null);
но без любого результата. Есть ли какой-либо способ, которым я могу получить список или если это не возможно, затем там какое-либо возможное намерение (например, Выбор), которым я могу позволить пользователю выбирать файл и затем получать доступ к пути файла, который выбрал пользователь??
Парни Helppppp...
Вы можете использовать действие галереи для выбора изображений, примерно так:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_IMAGE);
в обратном вызове для действия uri файла будет в параметре намерения
//where contextObject is your activity
ContentResolver cr = contextObject.getContentResolver();
String[] columns = new String[] {
ImageColumns._ID,
ImageColumns.TITLE,
ImageColumns.DATA,
ImageColumns.MIME_TYPE,
ImageColumns.SIZE };
cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
columns, null, null, null);
Мой код очень похож на ваш (за исключением того, что он не работает), и он работает. Вам не нужно спрашивать про что-то у намерения галереи, оно должно работать. Мои две догадки:
1) Убедитесь, что USB-накопитель не смонтирован, в противном случае вы не увидите внешних образов.
2) Может быть проблема с разрешениями? Попробуйте добавить разрешение GLOBAL_SEARCH, чтобы узнать, помогает ли это вообще.