Andorid 多FileProvider问题

120 阅读1分钟

调用系统相机时需要设置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>

即可解决。