minioctt<p><strong>il webdroide su sd</strong></p><p>Ed ecco un’altra combo di mattina+pomeriggio passata a sclerare con <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/android/" target="_blank">#Android</a>, con le sue API terrificanti. E dato che voglio esplodere, è bene distrarmi… postando la spiegazione di come ho smesso di sclerare una settimana fa!!! 😇️</p><p>Ancora una volta <a href="https://octospacc.altervista.org/2024/11/01/androwebvista/" rel="nofollow noopener noreferrer" target="_blank">per SpaccWebView di SpaccDotWeb</a>, infatti, ci sono degli imbrogli… ma piano piano faccio tutto, ne sono certa, il Java è nelle mie vene visto che a casa abbiamo la moka. E appunto, <a href="https://octospacc.altervista.org/2024/11/03/androidiessedi/" rel="nofollow noopener noreferrer" target="_blank">l’altra cosa che avevo tecnicamente già detto</a>, poi son riuscita a finirla (e menomale)… 👌️😉️👌️</p><p>Ora il mio codice riesce a salvare i dati della <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/webview/" target="_blank">#WebView</a> sulla memoria esterna. Evviva!!! Ciò è praticamente fondamentale sui <a href="https://octospacc.altervista.org/2024/10/05/memorroid/" rel="nofollow noopener noreferrer" target="_blank">dispositivi senza adoptable storage (il mio tablet)</a>, perché servirebbe a ben poco poter spostare una app di 100 KB su <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/sdcard/" target="_blank">#SDcard</a>, se poi questa scrive 10, 20 MB sulla memoria interna… 🤨️</p><p>Non ho in realtà sistemato tutti quei TODO dell’archiviazione esterna, ma al momento non freca, visto che il codice per salvare lì i dati funziona comunque as-intended, su Android KitKat o superiori. Su versioni più vecchie funziona comunque, anche se meno intended, perché Android hack rogne API spacc… non fatemi ripetere. 💤️</p><p>Il tempo mi serviva per implementare cose accessorie, tipo il fatto che l’applicazione ora all’avvio controlla la posizione di installazione, e, nel caso sia cambiata dall’ultima volta (dalle impostazioni di Android), allora obbliga a spostare i dati verso lo stesso posto. Col dialogo bellino così, tutto automatico, senza ricorrere a configurazioni complicate! 🎉️</p><p>Forzare i <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/dati/" target="_blank">#dati</a> in sync in questo modo non solo migliora la UX, ma evita rogne strane, perché ci pensa il sistema Android a garantire che (per esempio) la app non possa trovarsi senza i suoi dati perché l’utente è stronzo e rimuove la scheda SD. 🤫️ (Devo però gestire il caso in cui l’utente sposta la app, ma toglie la memoria coi dati prima di trasferirli, che palle…)</p><p></p>In foto qui si vedono entrambi gli scenari: la cartellina coi dati su microSD, e la app che chiede di spostarli dopo esser stata messa su <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/archiviazione/" target="_blank">#archiviazione</a> interna. Damn, così elegante, funzionale, incredibile… Android quando funge… 🤤️<p></p><p>Ovviamente, ho ricompilato la magica app di 2048 che uso come demo con questo miglioramento blessato; l’APK è <a href="https://hlb0.octt.eu.org/Drive/Misc/SpaccWebView-2048.apk" rel="nofollow noopener noreferrer" target="_blank">allo stesso posto dell’altra volta, </a><a href="https://hlb0.octt.eu.org/Drive/Misc/SpaccWebView-2048.apk" rel="nofollow noopener noreferrer" target="_blank"><strong>qui</strong></a>. E, in questo caso ho omesso gli scleri… dato che sono a tema WebView, ma questo componente di merda non smette di regalare sofferenza. Prima o poi vuoto il sacco… 🙃️🙂️</p><p><a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/android/" target="_blank">#Android</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/archiviazione/" target="_blank">#archiviazione</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/dati/" target="_blank">#dati</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/sdcard/" target="_blank">#SDCard</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/spaccwebview/" target="_blank">#SpaccWebView</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://octospacc.altervista.org/tag/webview/" target="_blank">#WebView</a></p>