2

我有一个导出文件ContentProvider,用于访问用户想要通过其他应用程序共享的图像。简单地说,用户在我的应用程序中单击一个共享按钮,我向她展示可以共享图像的应用程序列表,然后她选择其中一个应用程序(调用 myContentProvider以基于 Uri 获取图像)。

但是,有一个 lint 警告ExportedContentProvider说我应该使用权限。如果我确实设置了权限,其他应用程序如何知道访问图像的权限?

4

1 回答 1

-2

Lint 所说的权限不是“访问图像”。它更多地是关于“使用你的 ContentProvider”。

当用户选择一个应用程序来共享图像时,您将为该应用程序提供一个 URI,而不是您的 ContentProvider。就像是:

intent.putExtra(Intent.EXTRA_STREAM, uri);

使您提供给共享应用程序的 Uri 代表图像文件的路径。不是您用来查询提供商的 Uri。

为避免 Lint 警告,您只需添加

android:exported="false"

在清单的提供者标签中。

然后,您的提供者将只能在您的应用程序中使用。

于 2012-07-27T13:28:21.840 回答