Получить все фотографии с Android-устройств

Я совершенно новичок в программировании на Android. Я пытаюсь загрузить все фотографии в Android-устройстве, на котором я тестирую свое приложение. Я написал функцию onCreate следующим образом:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageAdapter adapter= new ImageAdapter(this); final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID }; final String orderBy = MediaStore.Images.Media._ID; Uri rr= MediaStore.Images.Media.INTERNAL_CONTENT_URI; Cursor imagecursor = getContentResolver().query( MediaStore.Images.Media.INTERNAL_CONTENT_URI,null, null, null, orderBy); int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID); this.count = imagecursor.getCount(); this.thumbnails = new Bitmap[this.count]; for (int i = 0; i < this.count; i++) { imagecursor.moveToPosition(i); int id = imagecursor.getInt(image_column_index); thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail( getApplicationContext().getContentResolver(), id, MediaStore.Images.Thumbnails.MICRO_KIND, null); adapter.mThumbIds[i]= thumbnails[i]; } } 

Теперь проблема в том, что когда я получаю счет с помощью imageCursor.getCount (), он возвращает 0. Так скажите мне, что делать, потому что я не могу извлечь любой носитель, используя этот код.

Примечание. Я тестирую его на Galaxy Note-2

Во-первых, не забудьте

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

Этот метод вернет список фотографий в вашей галерее

 public static ArrayList<String> getImagesPath(Activity activity) { Uri uri; ArrayList<String> listOfAllImages = new ArrayList<String>(); Cursor cursor; int column_index_data, column_index_folder_name; String PathOfImage = null; uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI; String[] projection = { MediaColumns.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME }; cursor = activity.getContentResolver().query(uri, projection, null, null, null); column_index_data = cursor.getColumnIndexOrThrow(MediaColumns.DATA); column_index_folder_name = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME); while (cursor.moveToNext()) { PathOfImage = cursor.getString(column_index_data); listOfAllImages.add(PathOfImage); } return listOfAllImages; } 

Просто попробуйте, даже если ваше устройство имеет только внутреннее хранилище без внешнего хранилища ,

Попробуйте добавить разрешения:

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

И читать используя

 android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 
Intereting Posts
Как мы можем получить дату изготовления телефона Android, исправленную проверку программным путем? Как добиться высокой безопасности в мобильных приложениях? Intent flags – Как запустить новый экземпляр действия и закрыть других участников Кинжал с Android: как использовать контекст при использовании MVP? Может ли Android Studio использоваться для запуска стандартных проектов Java? Как вы можете заставить флеш на объект OutputStream, не закрывая его? Android OpenGL ES: Как вы выбираете 2D-объект? Как получить захват экрана при двойном разрешении? StartActivity, создающий новый экземпляр Activity каждый раз Как установить максимальную ширину на LinearLayout так, чтобы она не растягивалась в ландшафтном режиме? Эффект масштабирования для Android SurfaceView Как работает контент-наблюдатель на удаленных файлах? Родитель Android onTouchEvent похищает ребенка onTouchEvent Какова максимальная длина имени приложения для Android? Android-тестирование доступа к json-файлу