Skip to content
Archive of posts tagged Android

Collegare G1 e Nexus One per il debug con Linux

Il test delle proprie applicazioni Android su un device reale e’ sempre un passo importante per lo sviluppo. Fortunatamente si puo’ affrontare abbastanza semplicemente questa situazione grazie al supporto dell’SDK e del sistema operativo del telefono. Nel sito di Google questa operazione e’ descritta molto bene, ma manca di alcuni particolari.

Ad esempio, l’USB VendorID da usare con un Nexus One, dato che non e’ quello HTC di default, ma bensi’ 18d1. Occorrera’ quindi aggiungere, nel file /etc/udev/rules.d/51-android.rules questa riga

SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"

Aggiungendo i vari device supportati otteniamo:

#Acer
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"
#Dell
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"
#Foxconn
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"
#Garmin-Asus
SUBSYSTEM=="usb", SYSFS{idVendor}=="091E", MODE="0666"
#HTC G1 and others
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
#HTC Nexus One
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
#Huawei
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
#Kyocera
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666"
#LG
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"
#Motorola
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
#Nvidia
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666"
#Pantech
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE="0666"
#Samsung
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
#Sharp
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"
#Sony Ericsson
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"
#Sony Ericsson
SUBSYSTEM=="ZTE", SYSFS{idVendor}=="19D2", MODE="0666"

Un po’ accortezze varie che potrebbero far comodo in caso di problemi:

  • Ricordardi di abilitare il debug mode sul dispositivo come descritto nella guida
  • Rilanciare UDEV per rendere attive le modifiche: sudo restart udev
  • Rilanciare l’adb per prendere il carico il nuovo device: adb kill-server seguito da adb start-server
/etc/udev/rules.d/51-android.rules.

Modello distribuivo Serial Filling per l’Android Market

Un buon modello distributivo puo’ contribuire in maniera sostanziale alla fortuna di un’applicazione per mobile. Posizionamento e parole chiave efficaci, buoni feedback, pubblicita’ su piu’ canali. Sono tante le strategie che possono aiutare, differenziate per tipo di applicazione, pubblico, target device e altri fattori.

Ho notato che l’Android Market permette un modello distributivo ribattezzato simpaticamente da un mio amicoSerial filling“: in pratica si tratta di realizzare un’applicazione di base che va personalizzata verso un target molto specifico, per poi essere pubblicata e distribuita nelle tante versioni realizzate. In genere il guadagno e’ dato dall’advertising interno all’applicazione, quasi mai dal suo costo di acquisto.

Prendiamo ad esempio un programma che mostra le citazioni piu’ famose di un certo personaggio, la sua biografia, le foto su Internet ricercate grazie a Google Image, un suo eventuale account Twitter, video su YouTube che lo riguardano e qualche altra cosetta. Bene, create ora una versione dell’applicativo per ogni personaggio famoso che vi viene in mente, pubblicatela e boom! Abbiamo ottenuto il core-business iniziale di Idolware.

Questo particolare modello distributivo sembra realizzabile, nelle sue massime potenzialita’, solo sull’Android Market. La non necessita’ di un’approvazione prima di vederla pubblicata come avviene sull’Apple Store o l’Ovi Store rende il compito molto piu’ facile, altrimenti aspettare l’ok per 40-50 app molto simili tra loro potrebbe diventare un calvario. Anche il Marketplace di Windows Phone non permette questo approccio, dato che si possono distribuire al massimo 5 nuove applicazioni gratuite l’anno con la sottoscrizione di base, e ogni nuova applicazione costa 20 dollari. Se si e’ sicuri dei guadagni allora si potrebbe anche affrontare la spesa, ma se non si e’ sicuri, non ne vale proprio la pena…

Continue reading ‘Modello distribuivo Serial Filling per l’Android Market’ »

Appello agli sviluppatori Android per poter installare piu’ applicazioni nel proprio device

Buonaparte degli utilizzatori Android si saranno trovati a dover fronteggiare il problema della mancanza di spazio per installare nuove applicazioni. In passato a risolvere il prolema ci ha pensato App2SD, una piccola perla sviluppata dalla comunita’ hacker che permette di muovere qualunque programma nella memoria SD. Unico problema, funziona solo sui rooted device.

Dalla versione 2.2 (SDK 8), Android permette nativamente di spostare le applicazioni nella SD, ma solo se queste sono progettate per farlo. In soldoni, basta mettere questa riga nell’AndroidManifest.xml, nel tag <manifest>:

android:installLocation=”auto” oppure android:installLocation=”preferExternal”

Facile no? Peccato che moltissime applicazioni ancora non usino questa piccola accortezza. Per questo ho deciso di mandare una mail a tutti gli sviluppatori dei programmi che uso e che non la supportano ancora, chiedendogli di farlo. Se anche tu hai mancanza di spazio nel tuo device, guarda la mail dello sviluppatore nel market e inviagli il messaggio qui sotto ;)

Continue reading ‘Appello agli sviluppatori Android per poter installare piu’ applicazioni nel proprio device’ »

Come ricevere e spedire email dall’emulatore Android

k9mail logoL’emulatore Android non ha installato nessun client di posta elettronica, cosiccome le altre applicazioni rilasciate direttamente ad Google (Market, Maps ed altre). Se occorre testare un’applicazione che spedisce una mail, magari con un allegato, non si ha quindi modo di farlo. In alternativa, si potrebbe fare il debug del proprio programma direttamente da un dispositivo fisico, cosa non sempre comoda e fattibile.

Per fortuna esiste k9mail, un’applicazione che ha come obiettivo proprio quello di realizzare un client di posta elettronica prendendo spunto da quello rilasciato da Google stessa.

Una volta scaricato l’ultimo apk dell’applicazione disponibile sul sito, per installarlo nel dispositivo bastera’ andare con il prompt dei comandi (Windows) o la console (Linux) dov’e’ stato salvato il file .apk e lanciare il comando
adb install K-9-2.000.apk

Il package verra’ installato nell’emulatore e, una volta configurato con un account di posta elettronica, sara’ possibile fare tutte le prove del caso

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’ »