Dire à la Caméra à l'Intention de sauver la prise d'image

Je suis en train de faire ceci:

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);

et à manipuler obtenir cette photo, je fais ceci:

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();
    }
}

Cependant, je continue à recevoir les messages comme celui-ci:

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)

Si je coche la Galerie, la photo n'est pas là, donc je suppose que le but est d'ignorer la MediaStore.EXTRA_OUTPUT valeur.

Est-ce que je peux faire, qui ne comportent pas l'écriture de mon propre Appareil photo solution?

ont u mettre cette autorisation dans menifest <uses-permission android:name="android.la permission.WRITE_EXTERNAL_STORAGE" />
Est-il vraiment nécessaire? Je veux dire, si j'utilise une Part de l'intention avec une application sans Internet permission, je peux encore le partager sur Twitter.

OriginalL'auteur Charlie-Blake | 2013-07-02