Как я могу получить пользователя, чтобы выбрать из собственной галереи в Android, а не в других подобных галерее приложениях, таких как ASTRO File Manager?Доступ к базовой галерее Android по назначению
Следующий код приведен список действий, которые можно выбрать изображение:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
List<ResolveInfo> infos = activity.getPackageManager().queryIntentActivities(intent, 0);
Если я после этого сделать что-то вроде этого:
activity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), REQUEST_CHOOSE_IMAGE);
тогда, если пользователь имеет более одного приложения, может работать как галерея (например, ASTRO File Manager), ему предлагается выбрать один из них без опции «установить по умолчанию».
Я не хочу, чтобы пользователю предлагалось выбирать между ними каждый раз, поэтому я хотел бы просто использовать родную галерею.
Hacky код ниже пример использует белый список, чтобы проверить наличие известных нативных имен галереи:
for (ResolveInfo info : infos) {
if ( 0==info.activityInfo.name.compareTo("com.cooliris.media.Gallery")
|| 0==info.activityInfo.name.compareTo("com.htc.album.CollectionsActivity")
) {
// found the native gallery
doSomethingWithNativeGallery();
}
}
ощущению своего рода грязным. Есть ли способ лучше? Я подозреваю, что упускаю что-то в своих намерениях.
Это не работает - это не выбор несколько возможных установленных галерейных приложений - попробуйте также установить ASTRO. Кроме того, вы не должны напрямую ссылаться на SD-карту в эти дни - вместо этого используйте Environment.getExternalStorageDirectory() –