我有一个导出的 ContentProvider
,我用它来访问用户想要通过其他应用共享的图像。简单地说,用户点击我的应用程序中的分享按钮,我向她展示了一个可以分享图像的应用程序列表,她选择了一个应用程序(它调用我的 ContentProvider
来获取基于URI)。
但是,有一个 lint 警告 ExportedContentProvider
说我应该使用权限。如果我确实设置了权限,其他应用程序如何知道访问图像的权限?
最佳答案
Lint 所谈论的权限与“访问图像”无关。它更多是关于“使用您的 ContentProvider”。
当用户选择一个应用程序来分享图片时,您将为该应用程序提供一个 URI,而不是您的 ContentProvider。像这样的东西:
intent.putExtra(Intent.EXTRA_STREAM, uri);
确保您为共享应用提供的 Uri 代表图像文件的路径。 不是您用来查询提供商的 URI。
为了避免 Lint 警告,您可以添加
android:exported="false"
在provider tag你的 list 。
您的提供者将只能在您的应用程序中使用。
关于android - Lint 警告 ExportedContentProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688500/