Skip to content
Archive of posts tagged Android

Consultare le mappe di Google Maps offline su Android

La possibilita’ di connettere gli smartphone alla Rete in totale mobilita’ rende i piu’ disparati contenuti accessibili quando ci servono, senza aver pianificato di farlo. Caso tipico le mappe di Google Maps, Yahoo Maps, Microsoft Bing e altri servizi simili. Quando pero’ andiamo all’estero o per qualche motivo siamo senza connessione, sono davvero pochissime le applicazioni che permettono di salvare i dati per una consultazione offline… Ma a tutto esiste rimedio.

Prendiamo ad esempio Big Planet Tracks, un programma che permette di accedere alla cartografia di Google Maps e registrare un percorso. Tra le opzioni c’e’ quella di salvare le mappe scaricate in un database locale. Con un po’ di pazienza, si potrebbe navigare in tutta la zona di nosto interesse, nei vari livelli di zoom e rendere queste informazioni accessibili anche offline. Ma se, ad esempio, ci si vuole portar dietro la cartografia dell’intera Corsica per una passeggiata in mezzo al deserto degli Agriates?

Proprio a questo scopo e’ stato creato un alto programma, Mobile Atlas Creator (conosciuto anche come TrekBuddy Atlas Creator). Un software open-source, scritto in Java, da eseguire sul “computer di casa”. Selezionando una zona e dei livelli di zoom, questo scarichera’ per noi tutte le mappe necessarie per poi salvarne in un formato compatibile con diversi applicativi che supportano la navigazione offline, come il sopracitato Big Planet Tracks e piu’ di altri 20 tra Android, Windows Mobile e navigatori GPS.

I passi dettagliati da seguire sono riportati in questa pagina wiki:

  1. Install the Java Runtime Environment (JRE or JDK, at least JRE v1.6.0_14 or later).
  2. Download and decompress Mobile_Atlas_Creator_1.7_SQLite.zip (Official Edition + SQLite Libs + Settings for “BigPlanet SQLite” format).
  3. Copy the libsqlite_jni corresponding to your OS platform to the MOBAC folder (which Mobile_Atlas_Creator.jar is located).
  4. Double click the Mobile Atlas Creator.exe on Windows (Run start.sh on Linux).
  5. Use the left mouse button to select the download area and right mouse button to move the map after executing the MOBAC.
  6. Click the "Add selection" button after selecting the multiple "Zoom Levels" of the map.
  7. Confirm the "Map Source" to be "Google Maps" (default value, you can choose another types).
  8. Confirm the "Format" of "Atlas settings" to be "BigPlanet SQLite" (default value).
  9. Start downloading the map after clicking the "Create atlas" button.
  10. After the download is finished, please click the "Open Atlas Folder" button to get the database named BigPlanet_maps.sqlitedb.
  11. Copy BigPlanet_maps.sqlitedb to Android phone’s SD card whose folder is "/sdcard/RMaps/maps/BigPlanetTracks.sqlitedb" (You can use any filename as long as you use the same filename extension above).
  12. Make sure to enable Android phone’s My Location setting (check "Use wireless networks" and/or "Use GPS satellites").
  13. Finally, please execute Big Planet Tracks or RMaps, the map will be moving to your location (if you successfully receive the latitude and longitude coordinates from Internet or GPS satellites).

Continue reading ‘Consultare le mappe di Google Maps offline su Android’ »

Android free menu icons

Ho faticato parecchio per trovare icone aggiuntive da usare con i menu’ di Android. Ecco una selezione di quello che alla fine ho tenuto.


Dezinerfolio ha rilasciato questo pack con 30 icone in PSD, scaricabile direttamente dal loro post.

Androidicons ha creato altre 30 icone, rilasciandole con licenza Creative Commons Attribution-Share Alike.

Continue reading ‘Android free menu icons’ »

Android e Skype, matrimonio impossibile?

Skype e Android. Sembra impossibile, ma all’oggi non esiste un client Skype per questa piattaforma. Nonostante ci siano quelli ufficiali per iPhone, Symbian e Windows Mobile, il sistema operativo made-in-Google sembra proprio essere stato dimenticato. Fino a poco tempo fa, se ci si accontentava di chattare e chiamare solo i propri contatti (quindi niente SkypeOut), si poteva usare l’ottimo Fring. Ma poi Skype ha deciso che questa cosa non le garbava piu’, evitando di proporre soluzioni alternative.

Unica eccezione per alcuni telefoni dell’operatore Verizon, in cui c’e’ preinstallato il client Skype Mobile, ma con un funzionamento ben diverso rispetto a quello a cui siamo abituati. Direttamente dal forum ufficiale:
“There IS a Skype app for Android but it is strictly available to select Verizon Wireless phones and only on Verizon service and only through Verizon’s voice connection, not data. It won’t even run if you aren’t on Verizon’s network should you manage to get the app installed anyway.”
Quindi niente chiamate col wi-fi, niente chiamate su connessione 3G, ma solo attraverso una strana connessione supportata da Verizon e Hutchinson ’3′ in alcuni paesi europei. Ammettendo di riuscire ad avere il pacchetto di installazione, risulta comunque inutilizzabile fuori da questi vincoli!

Inutile dire che nei forum gli utenti Android sono molto piu’ che amareggiati, e anche io personalmente non riesco a trovare una motivazione plausibile per una tale mancanza. Ormai sono due anni che Android e’ in giro, la sua diffusione cresce sempre di piu’, cosa c’e’ che mi sfugge? Una soluzione intermedia, comunque, esiste e si chiama Skype Lite per Android.

Continue reading ‘Android e Skype, matrimonio impossibile?’ »

SmsForFree, mandare SMS gratis (o quasi) da Android

Gli operatori telefonici italiani ben sanno che gli SMS sono per loro una miniera d’oro, tanto che nel tempo il costo dei messaggini e’ lievitato fino a toccare i 15 centesimi di euro. Dopo che l’anno scorso l’UE ha fissato il prezzo massimo degli SMS tra paesi dell’unione a 11 centesimi + iva (13 quindi in tutto), qualcuno ha capito che il consumatore finale forse avrebbe potuto notare che mandare 160 caratteri in Francia costava meno che mandarli al vicino di casa, e i prezzi degli SMS nazionali si sono stabilizzati intorno agli attuali 12 centesimi l’uno.

Per fortuna Internet ci aiuta anche in questo: ci sono infatti servizi online che permettono di inviare SMS a prezzi minori di quelli praticati dagli operatori. Nati per supportare campagne marketing e comunicazioni ad una molteplicita’ di soggetti, nel tempo si sono evoluti e avvicinati anche al singolo consumatore. AimonSkebby, SubitoSMS per citarne alcuni italiani, ma anche l’universo Betamax con Voipstunt, che abbraccia molti paesi del mondo. Inviare SMS da uno di questi provider in Italia costa tra i 6 e i 7 centesimi di euro. L’unico problema e’ che per usarli occorre appoggiarsi al loro sito Internet, rinunciando all’innegabile comodita’ del cellulare che rende l’operazione di invio SMS facile ed immediata, ma al doppio del prezzo.

I piu’ lungimiranti tra questi provider hanno realizzato dei client per i diversi sistemi operativi mobili che rendono l’invio abbastanza facile, ma avevo bisogno di qualcosa per Android che permettesse di usare Aimon (2 SMS gratuiti ogni giorno, poi 7 cent ad ogni messaggio), Vodafone (offre 10 SMS gratuiti al giorno verso altri numeri Vodafone) e Voipstunt (che uso anche per fare chiamate a bassissimo costo verso numeri di rete fissa ed internazionali), si integrasse con la rubrica del cellulare, permettesse di comprimere il testo del messaggio, gestione della firma e template. Usavo gia’ JackSMS sul mio Symbian, e dato che SBMessJ per Android e’ un progetto morto, ho ben pensato di realizzare io un client che permettesse di interfacciasi a JackSMS e i provider gia’ citati. E cosi’ e’ nato SmsForFree. Un po’ per gioco, un po’ per didattica, un po’ per necessita’.

Continue reading ‘SmsForFree, mandare SMS gratis (o quasi) da Android’ »

Android e Intent filters per registrare un’applicazione tra quelle per mandare SMS

Un aspetto che mi piace molto della piattaforma Android e’ quello degli Intent filters: un metodo rapido e veloce per esporre al resto del sistema cosa e’ in grado di fare un’applicazione, i tipi di dati che e’ in grado di gestire e le azioni che e’ in grado di compiere. Oltre a quelli definibili dall’utente, ce ne sono tutta una serie che riguardano operazioni standard, come spedire una mail, visualizzare un’immagine, aprire un link ecc. Si ottiene quindi un modo facile e veloce per aggiungere “nuovi pezzi” al sistema oppure estendere quelli esistenti con qualcosa di personalizzato, magari anche migliore, in maniera trasparente all’utente finale e molto facile per il programmatore, che non deve far altro che specificare nel Manifest.xml dell’applicazione quali intent filters le singole activity sono in grado di gestire.

Ad esempio, per fare in modo che la propria applicazione appaia tra la lista di quelle disponibili per mandare un sms oppure per condividere del testo, ecco i passi da eseguire.

Poniamo che l’activity ActSendSms sia in grado di mandare sms. Va aggiunto nel Manifest.xml questo blocco di codice:

<!-- Defines also the app name in the Android menu -->
<activity
android:name="it.rainbowbreeze.smsforfree.ui.ActSendSms"
android:label="@string/common_appName"
>
<!-- Sends sms for someone -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
</intent-filter>

<!-- Sends text to someone -->
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>

Nei commenti e’ indicato a cosa servono nello specifico i due filtri.

Continue reading ‘Android e Intent filters per registrare un’applicazione tra quelle per mandare SMS’ »

Se cerchi un telefono, non andare dai rivenditori

Da qualche settimana sto cercando un telefono Android (Nexus One o HTC Desire), nuovo o di seconda mano.  Approfittando del giro di acquisti, sono andato a sbirciare un po’ nei negozi autorizzati Vodafone e 3 Italia per sapere se e’ possibile ordinarlo direttamente tramite negozio, dato che attualmente questi operatori hanno nei loro listini il telefono che vorrei.

Vodafone: Nexus One
3 Italia: HTC Desire

Tralasciando un’analisi dell’offerta, vi dico solo che sarei abbastanza incline a propendere per l’offerta 3, dato che sono gia’ loro cliente con una scheda 3Power10, non pagherei quindi la maxi-rata finale e dei 489 euro di spera totale totale, 240 andrebbero in ricariche per il mio normale traffico telefonico, mentre con Vodafone dovrei spendere 500 euro tutte per il terminale. Bel colpo di H3G per abbinare l’acquisto alla normale ricarica, senza bisogno di un abbonamento o strano piano tariffario.

Il primo negozio che ho visitato la settimana scorsa e’ stato il negozio 3 al Carrefour di Pavia, segnalato come primo dal sito di 3 Italia. Beh, pur avendo un listino sottomano datato 1 Giugno 2010, non sapevano nulla dell’offerta sull’HTC Desire e mi hanno chiesto se ero davvero sicuro di quello che stavo dicendo. Gli ho risposto che l’avevo vista sul sito 3 e mi ne sono andato ringraziando.

Continue reading ‘Se cerchi un telefono, non andare dai rivenditori’ »

Native Android Applications Development alla UgiALT.NET Conf

Giornata intensa e ricca quella della V UgiALT.Net Conference, che mi ha anche visto tra gli speaker a parlare un po’ di Android e, come ha detto Diego, a sentirmi un po’ una mosca bianca con una macchina equipaggiata con GNU/Linux + Eclipse in mezzo ai tanti Windows e Mac…

Ecco le slide dell’intervento che ho fatto:

Continue reading ‘Native Android Applications Development alla UgiALT.NET Conf’ »

Scaricare gli Android SDK e installarli manualmente

Se sviluppate per Android, vi sara’ capitato di dover  scaricare gli SDK delle varie versione del sistema operativo, procedura completamente automatizzata grazie all’Android SDK and AVD Manager. Potrebbe pero’ capitare di voler scaricare manualmente questi aggiornamenti, magari per velocizzare l’installazione su diversi computer, oppure per qualche altro motivo.

Per prima cosa, occorre scaricare gli Android DSK dal sito ufficiale. Scompattare il file .zip o .tgz in una cartella a propria scelta e lanciare da questa il file tools\android.bat (per Windows) o tools/android (per GNU/Linux). Dovrebbe aprirsi l’Android SDK and AVD Manager, un programma come quello in figura:

android_sdk_adv_managerSe dal menu’ a sinistra si sceglie la voce Available Packages, si notera’ che nella parte a destra, in alto, viene proposto l’indirizzo di un file xml, e precisamente:
https://dl-ssl.google.com/android/repository/repository.xml

Questo file, se scaricato e aperto, contiene tutti i pacchetti disponibili nel repository di Google, pacchetti che vengono filtrati in base al proprio sistema operativo e in base a cosa si e’ gia’ installato per proporre i nuovi aggiornamenti dell’AVD Manager.

Continue reading ‘Scaricare gli Android SDK e installarli manualmente’ »

Xperia X10 e il Motorola Droid: un’occhio sul futuro mobile che ci aspetta

droidsettingsIn questi giorni sono stato abbastanza fortunato da poter giocare un po’ con due tra i piu’ attesi device Android di fascia alta in arrivo entro il primo trimestre del 2010: il Sony-Ericsson Xperia X10 e il Motorola Droid, Milestone per il nostro continente.

Tralasciando impressioni su caratteristiche tecniche di cui la rete e’ piena, volevo scrivere due parole sul feedback ricevuto e sui pensieri che ho fatto usando questi due device.

Innanzitutto telefonare e’ ormai solo una delle tante cose che si puo’ fare con uno di questi dispositivi, e neanche la piu’ importante, data l’autonomia delle batterie che potrebbe far desistere chi ha bisogno di qualcosa per parlare spesso con altre persone. In compenso l’ampio schermo, il comparto audio, l’hardware in grado di capire dove l’oggetto si trova nello spazio e le applicazioni che si possono installare, con cui si e’ praticamente in grado di fare di tutto oggi (magari non proprio bene, ma su questo il popolo degli sviluppatori mobili ci sta lavorando, o almeno spero), compiono l’ultima tappa evolutiva che vede i vecchi telefonini arrivare ad essere degli smartdevice, neanche piu’ degli smartphone…

Personalizzare la dotazione standard di Android e’ una delle chiavi per far propendere il consumatore verso il proprio prodotto piuttosto che verso quello della concorrenza. Il Droid non aggiunge praticamente nulla alle funzionalita’ di base del sistema operativo, mentre molto lavoro e’ stato fatto per Xperia X10: una nuova interfaccia per accedere ai contatti chiamata Timescape, poi Mediascape, poi la macchina fotografica che quando scatta una foto riconosce e tagga automaticamente i volti dei soggetti, un application store per raccogliere applicazioni appositamente realizzate per questi device e molto altro. Certo, il tutto va fatto conoscere al consumatore finale attraverso un’adeguata pubblicita’ e formazione del personale addetto alla vendita, altrimenti tanti sforzi non troveranno il loro giusto coronamento. Inoltre, questi software devono avere le caratteristiche di immediatezza, presentare percorsi semplici per raggiungere lo scopo, adattivita’ in base al contesto, interoperabilita’. Con queste caratteristiche si riuscita’ ad erodere quote di mercato ai concorrenti, dato che il pubblico, un po’ alla volta e in base alla nazione, si sta orientando non piu’ solo verso l’aspetto estetico del dispositivo, ma anche verso quello contenutistico: con questo telefono riesco a farci questa cosa? Fare una foto, riconoscere la persona ripresa, taggarla, aggiungerla alla propria collezione e condividere l’esperienza sui social network che si frequentano. siamo nell’era del lifestreaming, o meglio dell’e-gossip, quando meglio si riesce a fare, tanto piu’ i consumatori saranno contenti.

Lo schermo molto grande, la memoria interna e la qualita’ della componenstica fanno di questi device delle vere e proprie stazioni multimediali per il mercato consumer. Non tardera’ molto l’arrivo dell’uscita fullHD, completando quella che sembra una partita gia’ vinta sulla fascia della riproduzione musicale (visto che la SIAE vorrebbe gia’ approfittarne). Certo, 500 euro solo per un lettore MP3/MP4 non sono proprio concorrenziali, ma non sento lontani i tempi (diciamo un anno al massimo?) in cui si scarichera’ un film sul proprio dispositivo, magari dal proprio online blockbuster preferito, e lo si attacchera’ alla televisione per vederlo. O lo si riprodurra’ in mobilita’ con qualita’ minore. Se pensiamo a quanti “vedono oggi la TV” attraverso i video di YouTube, allora si capisce come molti si orientino sulla fruizione del contenuto, e non piu’ sulla sua sola qualita’.

Continue reading ‘Xperia X10 e il Motorola Droid: un’occhio sul futuro mobile che ci aspetta’ »

android.view.WindowsManager$BadTokenException

android.view.WindowsManager$BadTokenException: Unable to add window — token null is not for an application: questo errore mi e’ capitato mentre, programmando per Android 1.6, stavo provando a creare dei custom dialog seguendo la documentazione ufficiale di Google.

Per risolvere il problema, ahime’, bisogna sostituire nel codice mostrato questa chiamata

Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);

con questo

Dialog dialog = new Dialog(this);

stessa cosa per l’esempio successivo, che usa un AlertDialog.Builder per creare un dialog completamente personalizzato, anche nel titolo, dove occorre sostituire la chiamata

builder = new AlertDialog.Builder(mContext);

con

builder = new AlertDialog.Builder(this);

In pratica, usare il metodo getApplicationContext() non ritorna un oggetto Context che puo’ essere usato per costruire i Dialog, quindi occorre passare direttamente tutta l’Activity.

Continue reading ‘android.view.WindowsManager$BadTokenException’ »