Dies zeigen die Box mit den Anwendungen, um ein Bild zu wählen oder ein Bild mit der Kamera zu machen. Wenn ich Kamera auswähle, kann ich ein Bild aufnehmen, aber es gibt keine Rückgabe- oder Speicheroption. Ich habe meine Antwort aktualisiert und den Aktivitätsergebniscode gepostet.android - Wählen Absicht
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch (requestCode)
{
case 1:
if (data != null)
{
Log.e("TAG", "Only called when a image from gallery is selected");
}
else
{
Log.e("TAG", "Data is null");
}
break;
}
}
private void ChooseImage()
{
// Create gallery intent
Intent _intentGallery = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
_intentGallery.setAction(Intent.ACTION_PICK);
_intentGallery.putExtra("return-data", true);
// startActivityForResult(_intentGallery, 1);
// Create camera intent
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// Create chooser
Intent chooser = Intent.createChooser(galleryIntent, getString(R.string.choose_an_application));
// Create list of gallery intents
List<Intent> galleryIntents = new ArrayList<Intent>();
// Add intents to list
PackageManager pm = getApplicationContext().getPackageManager();
for (ResolveInfo ri: pm.queryIntentActivities(_intentGallery, PackageManager.MATCH_DEFAULT_ONLY))
{
Intent intent = pm.getLaunchIntentForPackage(ri.activityInfo.packageName);
intent.setAction(Intent.ACTION_PICK);
intent.putExtra("return-data", true);
galleryIntents.add(intent);
}
// Show dialog
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, galleryIntents.toArray(new Parcelable[] {}));
startActivityForResult(chooser, 1);
}
Manifest Berechtigungen:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />