Android: как сохранить результат с камеры в приватный файл

Я пытаюсь получить изображение с камеры и сохранить его непосредственно в каталоге личных файлов моего приложения. В целях безопасности изображение не должно быть общедоступным в любое время.

В общем случае, вы предоставляете временный доступ к личному файлу, используя ContentProvider и устанавливая флаг GRANT_WRITE_URI_PERMISSION в Intent. Следуя документации вFileProviderЯ сделал следующее:

AndroidManfiest.xml

<manifest> 
    ...
    <application>
        ...
        <provider
            android:authorities="com.my.domain"
            android:name="android.support.v4.content.FileProvider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>
        ...

Рез / XML / file_paths.xml

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="my_images" path="images/"/>
</paths>

При запуске действия камеры я выполняю следующее из действия:

File imageFile = getInternalImageFile();
Uri captureUri = FileProvider.getUriForFile(this, "com.my.domain", imageFile);

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

// grant temporary access to the file
intent.setData(captureUri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

// tell the camera where to save the file
intent.putExtra(MediaStore.EXTRA_OUTPUT, captureUri);

startActivityForResult(intent, IMAGE_CAPTURE_REQUEST_CODE);

Это, однако, приводит к немедленному возвращению приложения камеры, ничего не делая. Я подозреваю, потому что он не ожидает, что будет какой-либо набор данных по намерению (Intent.setData ()).

Выше стратегия не работает так хорошо. Итак, как я могу безопасно сохранить изображение, снятое с камеры, прямо в папку личных файлов моего приложения?

Ответы на вопрос(2)

Ваш ответ на вопрос