Итак, я пишу намерение, которое должно запустить галерею, чтобы просмотреть изображение, переданное в намерение с его Uri. Этот код работает отлично, делает именно то, что я хочу, чтобы это сделать:Android Intents - Разница между SetDataAndType и просто setData и setType?
private Intent makeGalleryIntent(String pathToImageFile) {
Intent mGalleryIntent = new Intent(Intent.ACTION_VIEW);
mGalleryIntent.setDataAndType(Uri.parse("file://" + pathToImageFile), "image/*");
return mGalleryIntent;
}
Но когда я пытался играть с ним (как раз пробовать разные вещи, как я узнаю), этот код либо падает на эмуляторе, так как это может «т запустить камеру или просто тянет мою галерею на моем физическом устройстве:
private Intent makeGalleryIntent(String pathToImageFile) {
Intent mGalleryIntent = new Intent(Intent.ACTION_VIEW);
mGalleryIntent.setData(Uri.parse("file://" + pathToImageFile));
mGalleryIntent.setType("image/*");
return mGalleryIntent;
}
они оба выглядят, как они должны сделать то же самое. Кроме того, есть ли способ, которым я мог бы установить все это правильно, просто используя конструктор Intent?
Отличный вопрос! У меня была именно эта проблема, и это действительно раздражает, вы думаете, что «набор» API не будет иметь глупых скрытых побочных эффектов. – ebyrob