Language

MediaStore.CreateWriteRequest(ContentResolver, ICollection<Uri>) メソッド

定義

要求されたメディア項目に対する書き込みアクセス権をアプリに付与するようにユーザーに求める PendingIntent を作成します。

[Android.Runtime.Register("createWriteRequest", "(Landroid/content/ContentResolver;Ljava/util/Collection;)Landroid/app/PendingIntent;", "", ApiSince=30)]
public static Android.App.PendingIntent CreateWriteRequest(Android.Content.ContentResolver resolver, System.Collections.Generic.ICollection<Android.Net.Uri> uris);
[<Android.Runtime.Register("createWriteRequest", "(Landroid/content/ContentResolver;Ljava/util/Collection;)Landroid/app/PendingIntent;", "", ApiSince=30)>]
static member CreateWriteRequest : Android.Content.ContentResolver * System.Collections.Generic.ICollection<Android.Net.Uri> -> Android.App.PendingIntent

パラメーター

resolver
ContentResolver

MediaStore#AUTHORITYで接続するために使用されます。 通常、この値は Context#getContentResolver()ですが、より明示的なライフサイクル制御が必要な場合は、 ContentProviderClient を取得し、 ContentResolver#wrap(ContentProviderClient)を使用してラップできます。

uris
ICollection<Uri>

この要求に含めるメディア項目のセット。 各項目は MediaStore#AUTHORITY によってホストされ、 BaseColumns#_IDによって特定のメディア項目を参照する必要があります。

返品

属性

注釈

要求されたメディア項目に対する書き込みアクセス権をアプリに付与するようにユーザーに求める PendingIntent を作成します。

この呼び出しでは、プロンプトの要求のみが生成されます。プロンプトを表示するには、PendingIntent#getIntentSender()を使用してActivity#startIntentSenderForResultを呼び出します。 その後、ユーザーが要求を許可したかどうかを判断するには、Activity#onActivityResultでActivity#RESULT_OKをテストします。 要求された操作は、このアクティビティの結果が配信される前に完全に完了しています。

このメカニズムによって付与されるアクセス許可は、要求する Activity のライフサイクルに関連付けられます。 バックグラウンド アクションの長期的なアクセス権を保持する必要がある場合は、項目を ClipData または Intent に配置して、 Context#startService または android.app.job.JobInfo.Builder#setClipDataに渡すことができます。 Intent#FLAG_GRANT_WRITE_URI_PERMISSIONなど、保持する関連するアクセス モードを必ず含めます。

表示されるプロンプトには、既に書き込みアクセス権を保持しているメディアアイテムを含め、要求しているすべてのメディア項目が反映されます。 アクセスを要求する前に書き込みアクセスを既に保持しているかどうかを確認するには、Intent#FLAG_GRANT_WRITE_URI_PERMISSIONでContext#checkUriPermission(Uri, int, int, int)を使用します。

セキュリティとパフォーマンス上の理由から、この方法では Intent#FLAG_GRANT_PERSISTABLE_URI_PERMISSION や Intent#FLAG_GRANT_PREFIX_URI_PERMISSIONはサポートされません。

この要求を通じて付与される書き込みアクセスは汎用であり、取得すると、MediaColumns#IS_FAVORITE、MediaColumns#IS_TRASHED、ContentResolver#deleteなどの列を直接ContentResolver#updateできます。

注: アプリが android.os.Build.VERSION_CODES#BAKLAVA 以上を対象とする場合は、各要求で最大 2,000 URI を送信できます。 2,000 を超える URI を送信しようとすると、 java.lang.IllegalArgumentExceptionが発生します。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象