调用系统相机时需要设置provider为
android:authorities="${applicationId}.provider"
而下载安装更新app时需要设置provider为:
android:authorities="${applicationId}.fileProvider"
如果provider的 name 都这样写,就会导致一个provider无效。
android:name="androidx.core.content.FileProvider"
解决办法:
将设置fileProvider 的 provider 自定义一个类 继承 FileProvider
package com.r2.util;
import androidx.core.content.FileProvider;
public class R2FileProvider extends FileProvider {
}
然后 配置
<provider
android:name="com.r2.util.R2FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
即可解决。