我有一个导出的ContentProvider,我使用它来访问用户想要通过其他应用程序共享的图像。简单地说,用户单击我的应用程序中的共享按钮,我向她显示可以共享图像的应用程序列表,然后她选择其中一个应用程序(该应用程序调用我的ContentProvider以获取基于Uri的图像)。
但是,有一个lint警告ExportedContentProvider说我应该使用权限。如果我设置了权限,其他应用程序如何知道访问图像的权限?
发布于 2012-07-27 21:28:22
Lint所说的权限,并不是关于“访问图像”。它更多的是关于“使用你的ContentProvider”。
当用户选择一个应用程序来共享图像时,您将为该应用程序提供一个URI,而不是您的ContentProvider。类似于:
intent.putExtra(Intent.EXTRA_STREAM, uri);Make sur您提供给共享应用程序的Uri表示图像文件的路径。而不是用来查询提供程序的Uri。
要避免Lint警告,您只需添加
android:exported="false"在您的清单的provider tag中。
然后,您的提供者将只能从您的应用程序中使用。
https://stackoverflow.com/questions/11688500
复制相似问题