PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile (précédentes versions) → [ WM28]Crash avec Albumselecteur, photolanceappli et champ editeur image Android 14
[ WM28]Crash avec Albumselecteur, photolanceappli et champ editeur image Android 14
Débuté par Alexandre, 20 juil. 2024 10:28 - 3 réponses
Posté le 20 juillet 2024 - 10:28
Bonjour,
Depuis la nécessité d'avoir un targetversion 34 dans le graddle (obligation de google si on publie sur le playstore).
les fonctions natives d'accès aux photos ne fonctionnent plus et on a droit à un jolie crash de l'appli avec ce message :
One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts


Si on change le target version en 33, tout va bien...mais passé le 31Aout 2024, aucune publication de mises à jour de l' appli ne sera acceptée.


Avez vous un idée sur comment contourné ce problème parce que là, c'est franchement nébuleux.

Merci
Membre enregistré
8 messages
Posté le 24 juillet 2024 - 14:47
Désolé pour le sujet doublon....

Je suis en cours de test mais avec un photo picker codé en Java, ça semble fonctionner; dès que mes tests sont ok, je post le code.
Membre enregistré
3 453 messages
Posté le 25 juillet 2024 - 07:59
Salut
J'avais eu ce souci déjà avec la wm20, j'avais à l'époque fait mon propre système de choix d'image
https://depot.pcsoft.fr/resource.awp…
Membre enregistré
8 messages
Posté le 27 juillet 2024 - 20:27
Oui Popoy (au passage merci :merci:,) j'utilise ton code pour une autre partie mais, il est vrai que cela pose certains problèmes de lenteur suivant le périphérique Android.

Alors, voici comment je réalise mon photo picker (en fait je fais appel à celui d'android) compatible Android 14 sous Windev Mobile 28 (target version 34)

Pour mon cas, je n'ai besoin que d'une photo mais, il me semble avoir vu un code pour pouvoir sélectionner plusieurs photos.

Créer 1 procédure java : ouvrirGalerie()

import android.app.Activity;
import android.content.Intent;
import android.content.Context;
import android.net.Uri;
// Procédure pour lancer l'intent de sélection de photo
public static void ouvrirGalerie() 
{
    Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Activity MyActivity = getActiviteEnCours();    
    MyActivity.startActivityForResult(intent, 1); //PICK_IMAGE_REQUEST
}


Créer 1 procédure WL : GET_ACTIVITE (permet d'alimenter la variable globale img_uri )

Procedure GET_ACTIVITE(resultCode,requestCode,URI,extras)

img_uri = URI


Créer 1 procédure WL (qui va permettre juste d'alimenter la variable image)

CHARGE_IMG(bResultat, buffer, sFormat)

var_image est une Image = dChargeImage(buffer) //variable image ou champ image


Dans le code principal WL, on fait cela

ouvrirGalerie()

//** OK, ce tantque est bofbof mais, sans faire cela, la variable img_uri (déclarer en global pour mon cas) n'est pas alimenter //assez vite, comme si AndroidActivityResultProcédure avait un temps de réponse.......
AndroidActivityResultProcédure(GET_ACTIVITE)
TANTQUE Taille(img_uri)<=0
Multitâche(-1)
FIN

sTypeMIME est une chaîne = URIRécupèreInfo(img_uri, uriInfoTypeConversion)
URIVersBuffer(img_uri,CHARGE_IMG, sTypeMIME)
VariableRAZ(img_uri)
Message modifié, 27 juillet 2024 - 20:27