Próbuję uruchomić intencję wyboru obrazu z kamery lub galerii Androida. Sprawdziłem THIS post i obecnie mój kod jest blisko do pracy:Zamiar wyboru aparatu lub galerii w Androidzie
private Intent getPickIntent() {
final List<Intent> intents = new ArrayList<Intent>();
if (allowCamera) {
setCameraIntents(intents, cameraOutputUri);
}
if (allowGallery) {
intents.add(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI));
}
if (intents.isEmpty()) return null;
Intent result = Intent.createChooser(intents.remove(0), null);
if (!intents.isEmpty()) {
result.putExtra(Intent.EXTRA_INITIAL_INTENTS, intents.toArray(new Parcelable[] {}));
}
return result;
}
private void setCameraIntents(List<Intent> cameraIntents, Uri output) {
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final PackageManager packageManager = context.getPackageManager();
final List<ResolveInfo> listCam = packageManager.queryIntentActivities(captureIntent, 0);
for (ResolveInfo res : listCam) {
final String packageName = res.activityInfo.packageName;
final Intent intent = new Intent(captureIntent);
intent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
intent.setPackage(packageName);
intent.putExtra(MediaStore.EXTRA_OUTPUT, output);
cameraIntents.add(intent);
}
}
Kiedy ustawić allowCamera = true to działa poprawnie.
Kiedy ustawić allowGallery = true pokazuje poniższy Chooser:
Ale jeśli ustawić allowCamera = true i allowGallery = true ekran wyboru pokazane jest:
A jeśli wybierzesz Android System
, pojawi się pierwszy wybieracz.
Chciałbym selektora być coś takiego:
Jak można "rozwinąć" opcja Android System
?
Czy to pomóc? https://github.com/siddhpuraamitr/Choose-Image-From-Gallery-Or-Camera – Slartibartfast
A to: http://stackoverflow.com/a/11732940/1081340 – Slartibartfast