如果你的

targetSdkVersion >= 24

,然后我们必须使用

FileProvider

类授予对特定文件或文件夹的访问权限,以使其他应用程序可以访问这些文件或文件夹。我们创建自己的类继承

文件提供程序

here

.

更换步骤

file://

content://

URI:

添加类扩展

public class GenericFileProvider extends FileProvider {}

添加文件提供程序

加入

AndroidManifest.xml

标签。为

android:authorities

${applicationId}.provider

以及其他常用的权威。

...

...

android:name=".GenericFileProvider"

android:authorities="${applicationId}.provider"

android:exported="false"

android:grantUriPermissions="true">

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/provider_paths"/>

然后创建

provider_paths.xml

归档

res/xml

(path=".")

外部文件

.

Uri photoURI = Uri.fromFile(createImageFile());

Uri photoURI = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", createImageFile());

编辑:

如果使用意图使系统打开文件,则可能需要添加以下代码行:

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐