|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
CaméraLanceAppli(viCaptureImage) ne fonctionne plus sous Android 14 |
Started by EVonZ, Jan., 17 2025 9:31 AM - 6 replies |
| |
| | | |
|
| |
Posted on January, 17 2025 - 9:31 AM |
Bonjour,
Depuis ma mise à jour Android 14, CaméraLanceAppli(viCaptureImage) ne fonctionne plus. Le code ci-dessous ne sort plus de chemin...
sFileImage = CaméraLanceAppli(viCaptureImage) SI sFileImage ~= "" ALORS COL_General.FichierLog(ErreurInfo(errComplet)) FIN
dans ma LOG:
- Appel WL : Fonction <>
- Niveau : erreur non fatale
- Pas de message d'erreur système
- Que s'est-il passé ?
J'ai essayé CaméraLanceAppli(viCaptureImage) sans resultat probant... |
| |
| |
| | | |
|
| | |
| |
Posted on January, 17 2025 - 10:15 AM |
Je voulais dire:
J'ai essayé VidéoLanceAppli(viCaptureImage) ou PhotoLanceAppli(viCaptureImage) sans succès... |
| |
| |
| | | |
|
| | |
| |
Posted on January, 17 2025 - 11:15 AM |
En fait sFileImage reste vide.
Le hemin complet du fichier dans lequel la photo a été enregistrée, n'est pas créé....
VidéoLanceAppli(viCaptureImage) a le même comportement...
Après plusieurs tests, aléatoirement, le chemin est créé, mais impossible de reprendre une photo...
Les permission Camera sont toutes intégrées au projet |
| |
| |
| | | |
|
| | |
| |
Posted on January, 17 2025 - 2:48 PM |
J'ai testé dans un projet simple, avec un seul bouton: Clic sur BTN-Photos
PrisePhoto()
PROCEDURE INTERNE PrisePhoto() <thread> sFileImage est une chaîne = "" err est une chaîne = "" sFileImage = CaméraLanceAppli(viCaptureImage) SI sFileImage ~= "" ALORS err = "NOK::" + sFileImage SINON err = "OK::" + sFileImage FIN EditErr(err) FIN PROCEDURE INTERNE EditErr(err est une chaîne) <thread principal> Info(err) FIN
Test avec 10 clics: 1. sFileImage reste vide 2. OK 3.sFileImage reste vide 4.sFileImage reste vide 5.sFileImage reste vide 6.OK 7.OK 8.OK 9.sFileImage reste vide 10.OK
Cela est fonctionnel sur Android 11 ou 13..... |
| |
| |
| | | |
|
| | |
| |
Posted on January, 20 2025 - 2:16 PM |
EVonZ a écrit : > Bonjour,
Bonjour
Je vois votre problème, vous souhaitez activer la syntaxe CaméraLanceAppli, j'ai deux solutions pour vous, à vous de choisir
1. Soit vous devrez ajouter un syntaxe qui détecte l'erreur, ensuite vous aurez une information, dans votre cas, ce n'est pas très grave après la vue de l'erreur 2. Soit vous devrez programmer un autre solution mais de même fonctionnalité pour avoir une image
Dans le cas 1, voilà un programme dont vous pourrez utiliser sFileImage is string = CaméraLanceAppli(viCaptureImage) IF Erreurdetecte = True THEN Info(Erreurinfo(Errcomplet)) Endprogramme() END SI sFileImage ~= "" ALORS COL_General.FichierLog(ErreurInfo(errComplet)) FIN
Dans le cas 2, voilà un programme dont vous pourrez utiliser // EDD (01/25) : créer un champ caméra et un champ bouton // EDD (01/25) : créer cette programme dans l'évènement du bouton LOCAL cCaméra is ClCaméra_Photo cCaméra:m_sChamp_Caméra = "CMR_Image" cCaméra:Répertoire() cCaméra:Validation() IF cCaméra:m_bRetour = True THEN cCaméra:Capture() END
// EDD (01/25) : créer une nouvelle classe ClCaméra_Photo ClCaméra_Photo est une Classe m_bRetour is booléen m_sRépertoire is string m_sChamp_Caméra is string FIN
// EDD (01/25) : créer deux nouvelle méthode dans la classe ClCaméra_Photo PROCÉDURE Répertoire() LOCAL sString is string = fRepExe() + "\Photo" // EDD (01/25) : pour cette exemple le chemin se trouve dans le répertoire exe mais vous pourrez remplacer par un répertoire de l'Android // sString is string = SysRepStockageExterne() + "\Photo" IF fRépertoireExiste(sString) = False THEN fRepCrée(sString) END :m_sRépertoire = sString
PROCÉDURE Capture() LOCAL dhDate_Heure is DateHeure = DateHeureSys() sString is string = :m_sRépertoire+ "\IMG_" + Left(dhDate_Heure, 14) + ".jpeg" IF CaméraCapture({:m_sChamp_Caméra, indChamp}, sString, viCaptureImage) = False THEN Info(ErreurInfo(errComplet)) EndProgram() ELSE Info("Merci de visualiser la photo dans le répertoire " + RC + sString) END
PROCÉDURE Validation() :m_bRetour = True IF NoSpace(:m_sChamp_Caméra) = "" THEN :m_bRetour = False Info("Merci de remplir le champ de caméra") ELSE IF ChampExiste(:m_sChamp_Caméra) = False THEN :m_bRetour = False Info("Merci de vérifier le champ caméra inexistant " + RC + :m_sChamp_Caméra) END
NB : Attention dans les deux cas, il faudrait que le chemin de sauvegarde existe
Cordialement Mr.RATSIMANDRESY Niry Aina Eddy |
| |
| |
| | | |
|
| | |
| |
Posted on January, 20 2025 - 4:32 PM |
Bonjour,
Justement, le problème vient du fait que sFileImage = CaméraLanceAppli(viCaptureImage) ne retourne pas de chemin.
Et ce de façon aléatoire.
Si sFileImage existe le code est fonctionnel.... |
| |
| |
| | | |
|
| | |
| |
Posted on January, 20 2025 - 4:42 PM |
A partir de la version 27, cette fonction est obsolète pour les applications Android (CameraCapture)
Je suis sous la version 2024 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|