|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
CaméraLanceAppli(viCaptureImage) ne fonctionne plus sous Android 14 |
Débuté par EVonZ, 17 jan. 2025 09:31 - 6 réponses |
| |
| | | |
|
| |
Posté le 17 janvier 2025 - 09:31 |
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... |
| |
| |
| | | |
|
| | |
| |
Posté le 17 janvier 2025 - 10:15 |
Je voulais dire:
J'ai essayé VidéoLanceAppli(viCaptureImage) ou PhotoLanceAppli(viCaptureImage) sans succès... |
| |
| |
| | | |
|
| | |
| |
Posté le 17 janvier 2025 - 11:15 |
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 |
| |
| |
| | | |
|
| | |
| |
Posté le 17 janvier 2025 - 14:48 |
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..... |
| |
| |
| | | |
|
| | |
| |
Posté le 20 janvier 2025 - 14:16 |
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 |
| |
| |
| | | |
|
| | |
| |
Posté le 20 janvier 2025 - 16:32 |
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.... |
| |
| |
| | | |
|
| | |
| |
Posté le 20 janvier 2025 - 16:42 |
A partir de la version 27, cette fonction est obsolète pour les applications Android (CameraCapture)
Je suis sous la version 2024 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|