0

Ich verwende die File System API aus der react-native-fetch-blob Bibliothek.Gespeicherte Bilder in der Galerie werden nur angezeigt, wenn das Telefon neu gestartet wird - React-Native Android

Ich Anfrage ein Bild vom Server, erhalten eine base64 und ich speichern es dann in Bilder Verzeichnis in der Android-fs.

ich speichern Sie das Bild wie folgt aus:

var RNFetchBlob = require('react-native-fetch-blob').default; 

const PictureDir = RNFetchBlob.fs.dirs.PictureDir; 

getImageAttachment: function(uri_attachment, filename_attachment, mimetype_attachment) { 

    return new Promise((RESOLVE, REJECT) => { 

    // Fetch attachment 
    RNFetchBlob.fetch('GET', config.apiRoot+'/app/'+uri_attachment) 
    .then((response) => { 

    let base64Str = response.data; 

    let imageLocation = PictureDir+'/'+filename_attachment; 

    //Save image 
    fs.writeFile(imageLocation, base64Str, 'base64'); 
    console.log("FILE CREATED!!") 

    }).catch((error) => { 
    // error handling 
    console.log("Error:", error) 
    }); 
}, 

Problem
Das Bild speichert erfolgreich, aber wenn ich die Galerie Android öffnen ist es nicht sichtbar. Aber wenn ich den Android-Emulator aus- und wieder einschalte, ist er in der Galerie sichtbar.

Frage
Wie kann ich das Bild in der Galerie Android ohne den Emulator neu starten zu müssen?


Lösung


Ich habe diese auf das obige Verfahren, nachdem die Datei erstellt:

RNFetchBlob.fs.scanFile([ { path : imageLocation, mime : mimetype_attachment } ]) 
.then(() => { 
    console.log("scan file success") 
}) 
.catch((err) => { 
    console.log("scan file error") 
}) 

Dank Sie @Xeijp.

Antwort

2

Um in Android ein Bild in der Galerie sichtbar zu machen, müssen Sie einen Medienscanner für diese Datei verwenden. reagieren-native-Fetch-Blob eine API für dieses

fs.scanFile(path_of_the_file) 

document

+0

wie beschrieben hinzufügen Ja ! Vielen Dank! – Larney

1

hat bietet die Galerie it-s aus den Medien-Datenbank Inhalt bekommt. Der Medienscanner analysiert das Dateisystem und aktualisiert die Medien-Datenbank entsprechend. Es kann einige Zeit dauern, bis der Medienscanner Ihr neues Bild gefunden hat.

+0

Danke für die Rückmeldung, aber ich war auf der Suche nach einer Reaktion-native-Android-Lösung. – Larney