Как сохранить сгенерированный QR-код в галерее напрямую (не с SD-карты и не под названием пакета) - PullRequest
0 голосов
/ 16 января 2019
private void storeImage(Bitmap image) {
    File pictureFile = getOutputMediaFile();
    if (pictureFile == null) {
       // Log.d(TAG, "Error creating media file, check storage permissions: ");// e.getMessage());
        return;
    }
    try {
        FileOutputStream fos = new FileOutputStream(pictureFile);
        image.compress(Bitmap.CompressFormat.PNG, 90, fos);
        fos.close();
    } catch (FileNotFoundException e) {
       // Log.d(TAG, "File not found: " + e.getMessage());
    } catch (IOException e) {
       // Log.d(TAG, "Error accessing file: " + e.getMessage());
    }
}

Я использовал вышеуказанный код для сохранения сгенерированного QR в Галерее. и это тоже работает.

Но это экономия в Internal Storage/package_name/Files/mtImage.jpg.

Мне нужно перейти в файловый менеджер, чтобы просмотреть его. Я хочу просмотреть его прямо в приложении Галерея, и у меня нет SD-карты.

Пожалуйста, помогите мне с этим.

1 Ответ

0 голосов
/ 16 января 2019

Код ниже помогает сохранить растровое изображение в галерее

публичная статическая пустота addImageToGallery (конечный строковый filePath, конечный контекстный контекст) {

    ContentValues values = new ContentValues();

    values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
    values.put(MediaStore.MediaColumns.DATA, filePath);

    context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}
...