MediaStore.CreateWriteRequest(ContentResolver, ICollection<Uri>) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
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.