Sto provando a configurare un fileprovider per condividere il file. I miei file vengono salvati in una cartella "NomeApp" nella memoria esterna (allo stesso livello delle cartelle di Android, Film e Immagini).Android: FileProvider sulla cartella di memoria esterna personalizzata
Ecco il mio fornitore di file di configurazione:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.mydomain.appname.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>
e la file_paths.xml:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="mypath" path="AppName" />
</paths>
Quando provo a accedere al mio file con:
Uri fileUri = FileProvider.getUriForFile(activity, "com.mydomain.appname.fileprovider",
new File("/storage/emulated/0/AppName/IMG_20160419_095211.jpg"));
restituisce un errore: java.lang.IllegalArgumentException: Impossibile trovare la configurazione root che contiene /storage/emulated/0/AppName/IMG_20160419_095211.jpg su android.support.v4.content.FileProvider $ SimplePathStrategy.getUriForFile (FileProvider.java:678) su android.support.v4.content.FileProvider. getUriForFile (FileProvider.java:377)
Ha funzionato bene prima, quando stavo utilizzando built-in directory come le immagini o filmati, il mio file_paths.xml era definire in questo modo:
<external-path name="photos" path="Pictures" />
<external-path name="videos" path="Movies" />
Ma ora voglio archivia il mio file nella mia cartella personale. Ho perso qualcosa con la configurazione di FileProvider?
Forse il problema è con il percorso hardcoded nel vostro 'costruttore File'. Usa 'new File (Environment.getExternalStorageDirectory()," AppName/IMG_20160419_095211.jpg ")' e vedi se hai più fortuna. – CommonsWare
Ho appena provato e non funziona – budgw