Bonjour,
je cherche à mettre en place un système de mise à jour d'une application android sans passer par Google Play. J'ai déjà réaliser un système de mise à jour en Windev qui fonctionnait bien mais ça semble coincer en Windev Mobile.
Le système de détection d'une nouvelle version fonctionne bien. Si l'utilisateur accepte la mise à jour, j'ouvre une nouvelle fenêtre qui contient un champ Jauge (pour la progression du téléchargement)
Code d'initialisation de la fenêtre
La procédure MajApplication
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ThreadExécute("ThreadMaj",threadNormal,MajApplication) BOUCLE SI ThreadEtat("ThreadMaj") = threadInexistant ALORS SORTIR FIN Multitâche(-1) FIN SI fFichierExiste(fRepCache()+"\MonAppli.apk") ALORS LanceAppli(fRepCache()+"\MonApplin.apk") FIN
Le rafraichissement de la jauge
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 PROCÉDURE MajApplication() SI fFichierExiste(fRepCache()+"\MonAppli.apk") ALORS fSupprime(fRepCache()+"\MonAppli.apk") HTTPDestination(fRepCache()+"\MonAppli.apk") HTTPJauge("ProcedureActualisationJauge") SI HTTPRequête("http://MonServeur/MonAlias/MonAppli.apk") ALORS HTTPDonneRésultat() FIN
Le problème est que mon apk pèse 13 Mo et que le système considère qu'il ne pèse que 12 ko, il ne télécharge que les 12 premiers kilos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 PROCÉDURE ProcedureActualisationJauge(nbTotal est un entier, nbRecu est un entier) sAffichageTotal est une chaîne sAffichageRecu est une chaîne sProgressionPourcentage est une chaîne LIB_Etat = "Téléchargement de la mise à jour" SI PartieEntière(nbTotal / 1073741824) > 0 ALORS sAffichageTotal = "G"//giga SINON SI PartieEntière(nbTotal / 1048576) > 0 sAffichageTotal = "M"//mega SINON SI PartieEntière(nbTotal / 1024) > 0 sAffichageTotal = "K"//kilo SINON sAffichageTotal = "O"//octet FIN FIN FIN SI PartieEntière(nbRecu / 1073741824) > 0 ALORS sAffichageRecu = "G"//giga SINON SI PartieEntière(nbRecu / 1048576) > 0 sAffichageRecu = "M"//mega SINON SI PartieEntière(nbRecu / 1024) > 0 sAffichageRecu = "K"//kilo SINON sAffichageRecu = "O"//octet FIN FIN FIN SELON sAffichageRecu CAS "G": sProgressionPourcentage = Arrondi(nbRecu/1073741824,2) +"Go / " CAS "M": sProgressionPourcentage = Arrondi(nbRecu/1048576,2) +"Mo / " CAS "K": sProgressionPourcentage = Arrondi(nbRecu/1024,2) +"ko / " CAS "O": sProgressionPourcentage = nbRecu +"o / " AUTRE CAS FIN SELON sAffichageTotal CAS "G": sProgressionPourcentage += Arrondi(nbTotal/1073741824,2) +"Go" CAS "M": sProgressionPourcentage += Arrondi(nbTotal/1048576,2) +"Mo" CAS "K": sProgressionPourcentage += Arrondi(nbTotal/1024,2) +"ko" CAS "O": sProgressionPourcentage += nbTotal +"o" AUTRE CAS FIN LIB_Progression = sProgressionPourcentage JAUGE_Progression = Val(nbRecu * 100 / nbTotal) Multitâche(-1)
Où ai-je pu me trompé?
je vous remercie
Partager