我在我的应用程序中使用FileProvider,当我从应用程序拍照时存储在那里。我的应用程序也有不同的应用程序ID用于调试和发布版本
我已经像这样定义了我的文件提供程序
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="@string/authority_file_provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
@string/authority_file_provider
的值将变为:
我的@xml/file_paths
定义为
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="my_images" path="Android/data/com.rkmax.myapp/files/Pictures" />
</paths>
如果我尝试更改为Pictures
或files/Pictures
我的应用失败
Failed to find configured root that contains/storage/emulated/0/Android/data/com.rkmax.myapp.debug/files/Pictures/20161112_073128-251269360.jpg
如何在文件提供程序路径中定义相对路径?
答案 0 :(得分:9)
对于您的特定情况,请替换:
<external-path name="my_images" path="Android/data/com.rkmax.myapp/files/Pictures" />
使用:
<external-files-path name="my_images" path="Pictures" />
这将需要24.0.0或更高的支持库IIRC。