Sagen Sie der Kamera, Absicht, speichern Sie das Bild genommen

Ich bin dabei:

intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
final File storage = Environment.getExternalStorageDirectory();
final Uri uri = Uri.fromFile(new File(storage, System.currentTimeMillis() + ".jpg"));
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, id);

und zu Griff bekommen, dass Foto, dass ich dies tun:

private String getLastImagePath() {
    final String[] imageColumns = { MediaStore.Images.Media._ID,
            MediaStore.Images.Media.DATA };
    final String imageOrderBy = MediaStore.Images.Media._ID + " DESC";
    final Cursor imageCursor = getContentResolver().query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns,
            null, null, imageOrderBy);
    if (imageCursor.moveToFirst()) {
        final String fullPath = imageCursor.getString(imageCursor
                .getColumnIndex(MediaStore.Images.Media.DATA));
        return fullPath;
    } else {
        throw new RuntimeException();
    }
}

Aber ich erhalte immer Meldungen wie diese:

07-02 14:46:54.751: E/BitmapFactory(23119): Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20130702_144653.jpg: open failed: ENOENT (No such file or directory)

Wenn ich schauen Sie sich die Galerie, das Foto ist nicht da, also meine Vermutung ist, dass die Absicht ignoriert die MediaStore.EXTRA_OUTPUT Wert.

Kann ich irgendetwas tun, dass nicht mit dem schreiben meiner eigenen Kamera-Lösung?

u setzen Sie diese Berechtigung in menifest <uses-permission android:name="android.die Genehmigung.WRITE_EXTERNAL_STORAGE" />
Ist es wirklich notwendig? Ich meine, wenn ich eine Aktie Absicht mit einer app ohne Internet-Berechtigung, ich kann immer noch teilen Sie Sie auf Twitter.

InformationsquelleAutor Charlie-Blake | 2013-07-02

Schreibe einen Kommentar