Ciao a tutti,
Ho un problema con HttpUtils2: ho bisgno di poter effettuare frequenti upgrade dell'applicazione e, allo stesso tempo, informare gli utenti del rilascio di nuove versioni. Ho analizzato il problema e ho deciso di seguire questo schema:
1 - Creo un file di testo con il numero della nuova versione
2 - Forzo l'app a scaricare all'apertura il file di testo
3 - Estraggo dal file in numero della nuova versione
4 - Confronto il numero della nuova versione con quello della versione in uso
5 - Se la versione è diversa, deve essere effettuato il download e l'installazione.
Tutto bene fino al punto 5: l'applicazione mi restituisce un errore (Errore di analisi, Errore durante l'analisi del pacchetto) e non effettua il download. Dov'è l'errore? Perchè riesco a scaricare tranquillamente il file di testo ma non riesco a scaricare l'applicazione? Qui sotto ho incluso il sorgente dell'applicazione di prova per il dowload: non è altro che un "riadattamento" dell'esempio di Erel su HttpUtils2 (ooviamente, pr funzionare l'applicazione ha bisogno dei moduli HttpJob e HttpUtils2Service.
Grazie a chi vorrà darmi un mano,
Vittorio
Ho un problema con HttpUtils2: ho bisgno di poter effettuare frequenti upgrade dell'applicazione e, allo stesso tempo, informare gli utenti del rilascio di nuove versioni. Ho analizzato il problema e ho deciso di seguire questo schema:
1 - Creo un file di testo con il numero della nuova versione
2 - Forzo l'app a scaricare all'apertura il file di testo
3 - Estraggo dal file in numero della nuova versione
4 - Confronto il numero della nuova versione con quello della versione in uso
5 - Se la versione è diversa, deve essere effettuato il download e l'installazione.
Tutto bene fino al punto 5: l'applicazione mi restituisce un errore (Errore di analisi, Errore durante l'analisi del pacchetto) e non effettua il download. Dov'è l'errore? Perchè riesco a scaricare tranquillamente il file di testo ma non riesco a scaricare l'applicazione? Qui sotto ho incluso il sorgente dell'applicazione di prova per il dowload: non è altro che un "riadattamento" dell'esempio di Erel su HttpUtils2 (ooviamente, pr funzionare l'applicazione ha bisogno dei moduli HttpJob e HttpUtils2Service.
B4X:
Sub Process_Globals
Dim VerVersion As String
Dim VersionString As String
Dim VersionCode As String
Dim NewPack As String
VerVersion = "http://www.miosito.com/miofileditesto.txt"
NewPack= "http://www.miosito.com/miaapp.apk"
Dim Scaricato As Boolean
End Sub
Sub Globals
Dim EditText1 As EditText
End Sub
Sub Activity_Create(FirstTime As Boolean)
Dim job1, job2, job3 As HttpJob
Dim pm As PackageManager
Activity.LoadLayout("layout")
Scaricato=False
VersionCode=pm.GetVersionCode("it.miaversioncode")
VersionString=pm.GetVersionName("it.miaversionname")
job1.Initialize("Job1",Me)
job1.Download(VerVersion)
End Sub
Sub JobDone (Job As HttpJob)
If Job.Success = True Then
Select Job.JobName
Case "Job1"
EditText1.Text=Job.GetString
Msgbox (EditText1.text,"")
If EditText1.Text<>VersionString Then
Job.Download(NewPack)
Dim i As Intent
i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(File.DirRootExternal, "miaapp.apk"))
i.SetType("application/vnd.android.package-archive")
StartActivity(i)
'Scaricato=True
End If
End Select
Else
Log("Error: " & Job.ErrorMessage)
ToastMessageShow("Error: " & Job.ErrorMessage, True)
End If
Job.Release
End Sub
Grazie a chi vorrà darmi un mano,
Vittorio