Сохранение изображения в папке sd - PullRequest
0 голосов
/ 22 апреля 2011

Я использую следующий код, чтобы сделать снимок с помощью встроенной камеры:

private File mImageFile;
private String mTempImagePath;
public static Uri imageUri;
public void imageFromCamera() {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
        Log.d("fototemp", "No SDCARD");
    } else {
        mImageFile = new File(Environment.getExternalStorageDirectory()+File.separator+"testFolder", "Pic"+System.currentTimeMillis()+".jpg");
        imageUri = Uri.fromFile(mImageFile);

        DataClass dc = (DataClass) getApplicationContext();
        File tempFile = new File(Environment.getExternalStorageDirectory()+File.separator+"testFolder");
        Uri tempUri = Uri.fromFile(tempFile);
        dc.setString(DataClass.IMAGE_PATH, tempUri.toString());
        Log.d("fototemp", "ImagePath: " + tempUri.toString());


        mTempImagePath = mImageFile.getAbsolutePath();
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
        startActivityForResult(intent, 0);
    }
}

Распечатанный ImagePath в методе imageFromCamera (): 4file: /// file% 3A /mnt / sdcard / testFolder

Теперь, когда я пытаюсь получить доступ к этим фотографиям с помощью managedQuery, я получаю другой каталог.MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI.toString () предоставляет содержимое: // media / external / images / thumbnails

В чем разница между этими двумя путями?И как я могу заставить управляемый запрос перейти на карту testFolder для поиска картинок?

edit: я пытаюсь подключиться:

Uri phoneUriII = Uri.parse(Environment.getExternalStorageDirectory()+File.separator+"testFolder");
imagecursor = managedQuery(phoneUriII, img, null,null, MediaStore.Images.Thumbnails.IMAGE_ID + "");

, но этот код падает

Ответы [ 2 ]

0 голосов
/ 22 апреля 2011

Я использую эту функцию в нескольких проектах, и она отлично работает.

/**
 * Retrieves physical path to the image from content Uri
 * @param contentUri
 * @return
 */
private String getRealImagePathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
0 голосов
/ 22 апреля 2011

Извините, на самом деле не понимаю вашего вопроса.

Просто отправьте это как путь URI.

Environment.getExternalStorageDirectory () + File.separator + "testFolder"

Также проверьте, есть ли у вас права на запись на SD-карту.

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...