Dies ist, wie es auf 2,2 (anders als bei früheren Versionen) funktioniert. Beim Starten der Absicht
String fileName = "temp.jpg";
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
startActivityForResult(intent, CAPTURE_PICTURE_INTENT);
müssen Sie sich erinnern mCapturedImageURI
.
Wenn Sie Bild aufzunehmen, in onActivityResult()
verwenden, die URI-Dateipfad zu erhalten:
String[] projection = { MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null);
int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String capturedImageFilePath = cursor.getString(column_index_data);
UPDATE: auf neue Android-Geräte würden Sie nicht MediaStore.EXTRA_OUTPUT brauchen, aber Sie eher ableiten Bild/Video-URI von data.getData(), empfangen von onActivityResult (..., Intent-Daten), wie sie unter gut
Android ACTION_IMAGE_CAPTURE Intent beschrieben
da jedoch dieser Teil unterliegt der Herstelleranpassung, können Sie immer noch auf Telefone stoßen, bei denen "alte" Herangehensweise nützlich sein kann.
bitte alle Ihrer Codes innerhalb der „Code“ Textfelder setzen, macht es Ihren Code wesentlich einfacher zu lesen, so als wir in der Lage sein können, Ihre Fragen zu beantworten – Samuel