2

ContentProviderユーザーが他のアプリを介して共有したい画像にアクセスするために使用するエクスポートがあります。ユーザーが私のアプリの共有ボタンをクリックするだけで、画像を共有できるアプリのリストを表示し、アプリの1つを選択します(ContentProviderUriに基づいて画像を取得するために私を呼び出します)。

ExportedContentProviderただし、許可を使用する必要があるという警告が表示されます。権限を設定した場合、他のアプリは画像にアクセスするための権限をどのように知るのでしょうか?

4

1 に答える 1

-2

Lintが話している許可は、「画像へのアクセス」に関するものではありません。それは「ContentProviderの使用」に関するものです。

ユーザーが画像を共有するアプリを選択するときは、ContentProviderではなくこのアプリにURIを指定します。何かのようなもの:

intent.putExtra(Intent.EXTRA_STREAM, uri);

アプリの共有に与えるURIが、画像ファイルへのパスを表すようにします。プロバイダーの照会に使用しているURIではありません。

Lint警告を回避するには、次を追加するだけです。

android:exported="false"

マニフェストのプロバイダータグ内。

これで、プロバイダーはアプリケーションからのみ使用できるようになります。

于 2012-07-27T13:28:21.840 に答える