NativeScript / NativeScript/plugins

Android 11, image picker doesn't have a selection after picking an image (from external storage)

Ouverte
#551 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
TypeScript
Étoiles
206
Forks
123
Merge moyen
2 j 1 h
PR mergées (30 j)
1

Description

The following error only seems to happen on Android 11. After imagepicker.present() and selecting an image from external storage the selection is empty. When picking an image from internal storage everything works as expected.

Setup and code:
I have tried with the following confuriations:
Image picker 2.0.2, and 3.0.0

/// 1
android.permission.READ_EXTERNAL_STORAGE
android.permission.MANAGE_EXTERNAL_STORAGE (and manually giving the app /// full permission) "

requestLegacyExternalStorage="true"
///

//// 2
android.permission.READ_EXTERNAL_STORAGE
requestLegacyExternalStorage="true"
////

/// 3
android.permission.READ_MEDIA_IMAGES
android.permission.READ_MEDIA_VIDEO
///

And
public pickImage(options?: OptionsCommon, hostView?: View): Promise {
// Create image picker
const p = imagePicker.create({
mode: 'single',
maximumNumberOfSelection: 1,
mediaType: ImagePickerMediaType.Image,
}, hostView); // Hostview is important to render on top of a modal

// Authorization is required (allow app to ...)
return p.authorize()
  .then(() => p.present()) // Present the imagepicker
  .then((selection) => {
    console.log(selection);
    const imagePickerSelection = selection[0];
    return Promise.all([Promise.resolve(imagePickerSelection.asset), isIOS ?
      ImageSource.fromAsset(imagePickerSelection.asset) : null]);
  })
  .then((f: [ImageAsset, ImageSource]) => this.processPickedImage(f, options))
  .catch(reason => Promise.reject(this.processPickingFailure(reason)));

}

on any other device then android 11, or when selecting from internal storage the console.log() prints the selection as expected.
When picking from external storage, and only on android 11 there is no selection.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le point d’entrée pickImage et son appel à imagePicker.present(), en reproduisant la sélection vide sur Android 11 lors du choix d’une image depuis le stockage externe. Comparez cela avec le stockage interne et les configurations d’autorisations indiquées dans image picker 2.0.2 et 3.0.0. Le travail est terminé lorsque la sélection d’une image externe produit une sélection remplie, comme sur les autres appareils et emplacements de stockage.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, typescript
Domaine
mobile
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.