Langue

MediaStore.CreateWriteRequest(ContentResolver, ICollection<Uri>) Méthode

Définition

Créez un PendingIntent élément qui invite l’utilisateur à accorder à votre application un accès en écriture pour les éléments multimédias demandés.

[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

Paramètres

resolver
ContentResolver

Utilisé pour se connecter avec MediaStore#AUTHORITY. En règle générale, cette valeur est Context#getContentResolver(), mais si vous avez besoin de contrôles de cycle de vie plus explicites, vous pouvez obtenir un ContentProviderClient wrapper et l’encapsuler à l’aide ContentResolver#wrap(ContentProviderClient).

uris
ICollection<Uri>

Ensemble d’éléments multimédias à inclure dans cette demande. Chaque élément doit être hébergé par MediaStore#AUTHORITY et doit référencer un élément multimédia spécifique par BaseColumns#_ID.

Retours

Attributs

Remarques

Créez un PendingIntent élément qui invite l’utilisateur à accorder à votre application un accès en écriture pour les éléments multimédias demandés.

Cet appel génère uniquement la demande d’une invite ; pour afficher l’invite, appelez Activity#startIntentSenderForResult avec PendingIntent#getIntentSender(). Vous pouvez ensuite déterminer si l’utilisateur a accordé votre demande en testant dans Activity#RESULT_OKActivity#onActivityResult. L’opération demandée aura terminé complètement avant la remise de ce résultat d’activité.

Les autorisations accordées par le biais de ce mécanisme sont liées au cycle de vie des Activity demandes. Si vous devez conserver l’accès à long terme pour les actions en arrière-plan, vous pouvez placer des éléments dans un ClipData ou Intent plusieurs éléments qui peuvent ensuite être passés à Context#startService ou android.app.job.JobInfo.Builder#setClipData. Veillez à inclure tous les modes d’accès pertinents que vous souhaitez conserver, tels que Intent#FLAG_GRANT_WRITE_URI_PERMISSION.

L’invite affichée reflète tous les éléments multimédias que vous demandez, y compris ceux pour lesquels vous détenez déjà l’accès en écriture. Si vous souhaitez déterminer si vous maintenez déjà l’accès en écriture avant de demander l’accès, utilisez Context#checkUriPermission(Uri, int, int, int) avec Intent#FLAG_GRANT_WRITE_URI_PERMISSION.

Pour des raisons de sécurité et de performances, cette méthode ne prend pas en charge Intent#FLAG_GRANT_PERSISTABLE_URI_PERMISSION ni Intent#FLAG_GRANT_PREFIX_URI_PERMISSION.

L’accès en écriture accordé par le biais de cette demande est à usage général, et une fois obtenu, vous pouvez directement des ContentResolver#update colonnes telles que MediaColumns#IS_FAVORITE, MediaColumns#IS_TRASHEDou ContentResolver#delete.

Remarque : si votre application cible android.os.Build.VERSION_CODES#BAKLAVA et versions ultérieures, vous pouvez envoyer un maximum de 2 000 uris dans chaque requête. La tentative d’envoi de plus de 2 000 uri entraîne un java.lang.IllegalArgumentException.

Documentation Java pour android.provider.MediaStore.createWriteRequest(android.content.ContentResolver, java.util.Collection<android.net.Uri>).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à