Я пытаюсь настроить файл файл для совместного доступа к файлу. Мои файлы сохраняются в папке "AppName" во внешнем хранилище (на том же уровне, что и папки Android, фильмы и рисунки).
Вот моя конфигурация поставщика файлов:
<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>
и file_paths.xml:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="mypath" path="AppName" />
</paths>
Когда я пытаюсь получить доступ к моему файлу с помощью:
Uri fileUri = FileProvider.getUriForFile(activity, "com.mydomain.appname.fileprovider",
new File("/storage/emulated/0/AppName/IMG_20160419_095211.jpg"));
Он возвращает ошибку: java.lang.IllegalArgumentException: Не удалось найти настроенный корень, содержащий /storage/emulated/ 0/AppName/IMG_20160419_095211.jpg на android.support.v4.content.FileProvider $SimplePathStrategy.getUriForFile(FileProvider.java:678) на android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:377)
Он работал отлично, прежде чем, когда я использовал встроенный каталог, например Pictures или Movies, мой файл_файлы .xml определялся следующим образом:
<external-path name="photos" path="Pictures" />
<external-path name="videos" path="Movies" />
Но теперь я хочу сохранить файл в своей папке. Я что-то пропустил с помощью конфигурации FileProvider?