ich eine FileProvider mit den folgenden res/xml/file_paths.xml
gesetzt haben:dynamisch ersetzen applicationId im file_paths.xml
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="suggestions" path="Android/data/com.example.app.dev/files/suggestions" />
</paths>
Das Problem ist, dass ich viele Produkt Aromen haben, die die applicationId
ändern. Gibt es eine Möglichkeit, diesen Wert durch die richtige applicationId zu ersetzen, ohne einen Dateipfad für jedes Produkt-Flavor zu erstellen? Wie ein Tag wie dieses zu ersetzen Android/data/{appId}/files/suggestions
? Oder sogar einen relativen Pfad verwenden ... (Ich habe alles versucht, aber nur dieser vollständige Pfad funktionierte).
FileProvider wird nicht den Wert von 'path' Attribut lesen, wenn Sie' android: 'Namespace setzen. So sieht der URI aus, wenn Sie 'path =" Android/data/com.example.myapp/files/Pictures "' schreiben: content: //com.example.myapp.photos_provider/my_images/my_file.jpg. Das ist der richtige. Aber wenn Sie 'android: path =" Android/data/com.example.myapp/files/Pictures "' (oder verwenden Sie Zeichenfolge aus Ressourcen wie in Ihrer Antwort) Sie erhalten: content: //com.example.myapp. fotos_provider/my_images/Android/data/com.beispiel.meinapp/dateien/Bilder/meine_datei.jpg. Sie profitieren also nicht von der Verwendung von FileProvider. – RustamG
es funktioniert nicht für mich :( –