Italian Download un file dal sito sulla cartella Download

toro1950

Active Member
Licensed User
Un saluto a tutta la comunità, sono un novizio per la programmazione di un'app,
non è nemmeno una settimana che ho iniziato,
sto cercando di creare un'app che collegandosi
ad un mio sito scarichi un file pdf salvandolo nella cartella Download
utilizzando questo codice, chiaramente scopiazzato da questo forum,
sotto un pulsante ci sono quasi riuscito

Dim j As HttpJob
j.Initialize("", Me)
j.Download("https://www.miosito.it/file.pdf")
Wait For (j) JobDone(j As HttpJob)
if j.Success then
Dim out As OutputStream
out = File.OpenOutput(File.DirRootExternal,"Download/file.pdf",False)
File.Copy2(J.GetInputStream,out)
out.close
ToastMessageShow ("File salvato nella cartella Download",True)
else
ToastMessageShow ("File non trovato",True)
End if
j.Release
Dico quasi riuscito perchè funziona bene su Android 13, ho provato su un paio di cellulari,
mentre non funziona su Android 10, su altri non sono riscito a provare. Leggendo qua e la nel forum
sembra che devo utilizzare PERMISSION_WRITE_EXTERNAL_STORAGE, ma non sono riuscito a capire
come implementarlo. Qualcuno gentilemte vuole aiutarmi, grazie
Mario
 

Sagenut

Expert
Licensed User
Longtime User
Prova se questo esempio funziona.
 

Attachments

  • FileDownload.zip
    9.6 KB · Views: 150
Upvote 0

Sagenut

Expert
Licensed User
Longtime User
Funziona ma solo per app ad uso privato.
Non la puoi pubblicare sul market Google Play, con quella modalità.
 
Upvote 0

sirjo66

Well-Known Member
Licensed User
Longtime User
Ciao Mario e benvenuto tra noi
Ricordati che quando devi pubblicare dei pezzi di codice sorgente devi utilizzare il pulsante apposito in alto a sinistra o racchiudere il tutto tra i tag CODE

Ad esempio:
B4X:
Dim Var As Int = 0
 
Upvote 0

toro1950

Active Member
Licensed User
Funziona ma solo per app ad uso privato.
Non la puoi pubblicare sul market Google Play, con quella modalità.
Cosa intendi ad uso privato? Scusa la mia ignoranza, sono alle prime armi, perchè non può essere pubblicata? Ammesso che riuscirò a completarla, ho ancora due step da completare di cui uno quasi insormontabile, questa app potrà essere solo utilizzata solo da pazienti di nutrizionisti che utilizzano un mio programma per l'elaborazione di diete
 
Upvote 0

toro1950

Active Member
Licensed User
Grazie, forse è per questo che non mi sono stati publicati altri due post
 
Upvote 0

Sagenut

Expert
Licensed User
Longtime User
Grazie, forse è per questo che non mi sono stati publicati altri due post
I tuoi post subiscono un ritardo perchè devono prima essere approvati da un moderatore.
Questo succede perchè non sei un Licensed User.
Per diventarlo ti basta fare una donazione per lo sviluppo di questi ambienti di sviluppo B4X.
In questo modo i tuoi messaggi verranno pubblicati immediatamente e sarà più veloce per te, e per noi, ricevere aiuto e sfruttare al meglio il forum.
Quì trovi il link per farlo, se vuoi:
https://www.b4x.com/b4a.html
 
Last edited:
Upvote 0

Sagenut

Expert
Licensed User
Longtime User
Per Uso Privato intendo app che fai installare manualmente sui dispositivi di chi la vuole usare, distribuendo direttamente il file di installazione (APK).
Per fare queste installazioni però l'utente deve abilitare l'installazione da Fonti Sconosciute sul proprio dispositivo.
E' quello che bisogna fare anche per installare le app dal market di Amazon.
Di base è una cosa rischiosa perchè non si sà nulla della app che viene installata.
Non ha passato controlli come quelle del market (benchè spesso passi porcheria anche lì) e un utente potrebbe avere timori se non ti conosce o non si fida.
Inoltre per fare successivi aggiornamenti dovresti sempre distribuire il nuovo file di installazione, oppure usare un metodo che automatizza la cosa ma non è questo il momento di parlarne.
Con il metodo che stai utilizzando ora non puoi pubblicarla sul Market di Google perchè a causa di restrizioni di sicurezza sempre più stringenti non è più consentito accedere direttamente alla directory cui fai riferimento tu (la File.DirRootExternal).
C'è quindi da studiare un pò per mettere tutto in ordine, e domani Google potrebbe cambiare di nuovo le carte in tavola (e lo farà sicuramente) e quindi poi devi sempre stare dietro ad ogni nuovo paletto per mantenere la tua app disponibile sul market.
Scusa se sono stato un pò lungo.
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…