Sprache

MediaStore.CreateWriteRequest(ContentResolver, ICollection<Uri>) Methode

Definition

Erstellen Sie eine PendingIntent , die den Benutzer auffordert, Ihrer App Schreibzugriff für die angeforderten Medienelemente zu gewähren.

[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

Parameter

resolver
ContentResolver

Wird verwendet, um eine Verbindung mit MediaStore#AUTHORITY. Dieser Wert ist Context#getContentResolver()in der Regel , aber wenn Sie explizitere Lebenszyklussteuerelemente benötigen, können Sie eine mit dieser ContentProviderClient Folie umschließen ContentResolver#wrap(ContentProviderClient).

uris
ICollection<Uri>

Der Satz von Medienelementen, die in diese Anforderung aufgenommen werden sollen. Jedes Element muss von MediaStore#AUTHORITY diesem gehostet werden und muss auf ein bestimmtes Medienelement verweisen.BaseColumns#_ID

Gibt zurück

Attribute

Hinweise

Erstellen Sie eine PendingIntent , die den Benutzer auffordert, Ihrer App Schreibzugriff für die angeforderten Medienelemente zu gewähren.

Dieser Aufruf generiert nur die Anforderung für eine Eingabeaufforderung; um die Eingabeaufforderung anzuzeigen, rufen Sie Activity#startIntentSenderForResult mit PendingIntent#getIntentSender(). Sie können dann ermitteln, ob der Benutzer Ihre Anforderung erteilt hat, indem Sie dies testen Activity#RESULT_OKActivity#onActivityResult. Der angeforderte Vorgang ist vollständig abgeschlossen, bevor dieses Aktivitätsergebnis übermittelt wird.

Berechtigungen, die über diesen Mechanismus gewährt werden, sind an den Lebenszyklus der Berechtigungen gebunden, die Activity sie anfordert. Wenn Sie den langfristigen Zugriff für Hintergrundaktionen beibehalten müssen, können Sie Elemente in eine ClipData oder Intent die dann übergeben Context#startServiceandroid.app.job.JobInfo.Builder#setClipDatawerden. Achten Sie darauf, alle relevanten Zugriffsmodi einzuschließen, die Sie beibehalten möchten, z Intent#FLAG_GRANT_WRITE_URI_PERMISSION. B. .

Die angezeigte Eingabeaufforderung spiegelt alle Medienelemente wider, die Sie anfordern, einschließlich der Elemente, für die Sie bereits Schreibzugriff haben. Wenn Sie feststellen möchten, ob Sie bereits Schreibzugriff haben, bevor Sie Zugriff anfordern, verwenden Sie Context#checkUriPermission(Uri, int, int, int) es mit Intent#FLAG_GRANT_WRITE_URI_PERMISSION.

Aus Sicherheits- und Leistungsgründen wird diese Methode nicht unterstützt Intent#FLAG_GRANT_PERSISTABLE_URI_PERMISSION oder Intent#FLAG_GRANT_PREFIX_URI_PERMISSION.

Der über diese Anforderung gewährte Schreibzugriff ist allgemeiner Zweck und sobald Sie erhalten haben, können Sie direkt ContentResolver#update Spalten wie MediaColumns#IS_FAVORITE, , MediaColumns#IS_TRASHEDoder ContentResolver#delete.

Hinweis: Wenn Ihre App auf und höher ausgerichtet android.os.Build.VERSION_CODES#BAKLAVA ist, können Sie in jeder Anforderung maximal 2000 URIs senden. Der Versuch, mehr als 2000 URIs zu senden, führt zu einer java.lang.IllegalArgumentException.

Java Dokumentation für android.provider.MediaStore.createWriteRequest(android.content.ContentResolver, java.util.Collection<android.net.Uri>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: