Il Vizietto…

… di parcheggiare sulle strisce, ostruendo pure le rampe di accesso per sedie a rotelle e passeggini e’ sempre piu’ diffuso. Andrebbe curato con la rimozione forzata istantanea.

ilvizietto_small.jpg

Possibile che chi parcheggia in questo modo non si renda conto che, un giorno, potrebbe aver bisogno lui di quella rampa?

Android Bluetooth API 0.2


Con un po’ di ritardo rispetto alla tabella di marcia, e’ finalmente pronta (e pubblicata su Google Code) la versione 0.2 della (unofficial) Android Bluetooth API. Questa nuova release include:

  • Bug fixing su RSSI (per la lettura del livello di segnale di ciascun dispositivo rilevato in fase di discovery) e gestione I/O stream
  • Supporto SDP (Service Discovery Protocol), che consente, dato un device remoto e un servizio di interesse, di conoscere il canale RFCOMM assegnato a tale servizio

Ricordo le caratteristiche gia’ implementate nella prima release:

  • Accensione/spegnimento servizio Bluetooth del telefono
  • Discovery dei dispositivi Bluetooth remoti
  • Supporto connessioni RFCOMM client

La (unofficial!) Bluetooth API non richiede alcun hacking sul telefono ed e’ stata testata su Android 1.1 e 1.5, su HTC Dream, HTC Magic e Samsung Galaxy. La libreria, completa di sorgente, e’ sempre disponibile su Google Code:

http://code.google.com/p/android-bluetooth

ed e’ distribuita con licenza Apache 2.0.

Grazie Smart!


Bella la Smart, la metti dove vuoi, occupa poco spazio. Si, e’ poco, ma quanto basta per chiudere la rampa per i disabili. Grazie, giovane proprietaria della Smart, gli sfortunati in sedia a rotelle e le mamme con passeggini ti ringraziano per la cortesia:

grazie_smart.jpg

Huawei K3715 su Mac OS X ma senza Vodafone


Questo post doveva intitolarsi “viva la mamma” (la mia, ovviamente!), ma poi ho pensato che fosse meglio facilitare i motori di ricerca con un titolo pertinente.

Quest’anno, in vista delle ferie estive, la mia mamma mi ha regalato una Vodafone Mobile Card (nota anche come K3715 e, internamente all’azienda, E180).

vodafone_k3715.jpg

La chiavetta ha il software in dotazione per Windows e Mac OS X, che comprende device driver e utility di connessione. Per profondo amore verso le proprie SIM, il software fornito da Vodafone si accorge se sulla chiavetta e’ presente una scheda di un altro operatore e, molto gentilmente, offre come unica opzione quella di chiudere l’applicativo. Senza appello. Una rapida ricognizione sui file dell’applicativo mi convincono che non c’e’ molto da fare: quel controllo e’ fatto con parametri hardcoded sul binario e non esiste una via semplice per bypassare il problema.

Decido di non arrendermi, visto anche il valore del regalo. E scopro con piacere che la configurazione su Mac e’ davvero banale. Ecco gli step da eseguire:

1) installare driver e applicazione forniti con la chiavetta. Nella confezione non e’ presente alcun CD di installazione, ma il software necessario e’ presente all’interno della chiavetta stessa, che viene riconosciuta e montata come unita’ di storage USB

2) dimenticarsi del software Vodafone Mobile Connect (!)

3) aprire le impostazioni di rete nelle preferenze di sistema. Selezionare la scheda di rete HUAWEI MOBILE.

huawei_1.png

4) selezionare le impostazioni avanzate (pulsante in basso a destra) ed sul pannello selezionare il modem vendor GENERIC, modello GPRS (GSM/3G) e l’APN dell’operatore in uso (nel mio caso, Telecom Italia Mobile, che ha APN ibox.tim.it)

huawei_2.png

5) chiudere le impostazioni avanzate e indicare come numero di telefono *99#

A questo punto la connessione attraverso la scheda Huawei K3715 e’ pronta ed attivabile dal pannello preferenze o, piu’ comodamente, dall’icona nella menubar:

huawei_3.png

Buon Ferragosto!

Bluetooth Counter


In attesa di rilasciare la versione 0.2 della Android Bluetooth API (che includera’ il supporto al Service Discovery Protocol), ho scritto un altro piccolo app widget che mostra l’utilizzo della libreria. Si tratta del Bluetooth Counter (gia’ disponibile sull’Android Market) che indica quanti dispositivi Bluetooth ci sono accanto a noi.

Piccolo gadget, niente di piu’, ma ci da’ un’idea di quanto anche Bluetooth contribuisca, nel suo piccolo, al crescente inquinamento elettromagnetico.

bluetooth_counter.png

Lavori usuranti

Speravo che nel 2009 l’assemblaggio e l’impacchettamento dei cellulari (e simili) fosse fatto dalle macchine e non dalle persone:

Che amarezza…

Android Bluetooth API


Android e iPhone OS hanno tante cose in comune, ma una e’ davvero fastidiosa e castrante per gli sviluppatori: lo stack Bluetooth e’ accessibile solo alle applicazioni di sistema ed e’ stato totalmente escluso dalle API pubbliche disponibili sugli SDK ufficiali.

Questo significa essenzialmente che e’ impossibile scrivere applicazioni in grado di connettersi a GPS esterni (o a qualsiasi altro tipo di sensore dotato di questa interfaccia), LEGO Mindstorms NXT, Arduino Bluetooth, lettori RFID con interfaccia Bluetooth e via dicendo. Si tratta certamente di una nicchia, ma resta comunque una nicchia piuttosto interessante e chi ci lavora spesso lo fa per divertimento o sperimentazione di frontiera. Senza contare le innumerevoli applicazioni industriali. Perche’ privarsene?

Leggendo il sorgente (http://source.android.com) e usando sistematicamente la reflection di Java, ho definito una API e scritto una libreria che consente di accedere alle funzionalità base dello stack Bluetooth di Android. In particolare la libreria consente di:

  • attivare/disattivare il servizio Bluetooth (e leggerne lo stato corrente)
  • effettuare una scansione dei dispositivi Bluetooth limitrofi (e conoscerne l’indirizzo, la classe e il friendly name
  • effettuare il pairing con un device remoto
  • aprire una connessione seriale RFCOMM verso un dispositivo remoto

La Experimental Android Bluetooth Library e’ pubblicata gratuitamente sotto licenza Apache 2.0 ed e’ disponibile su:

http://code.google.com/p/android-bluetooth/

Rispetto a progetti simili, questa API (e la relativa implementazione) non richiede che l’accesso root al terminale. In altre parole, funziona su qualsiasi terminale commerciale, senza che sia necessario effettuare alcuna modifica al firmware. Essendo basata sulla reflection, funziona… finché Google non decidera’ di cambiare lo stack Bluetooth di Android (ed è verosimile che cambi, visto che il ramo del sorgente piu’ recente contiene pezzi di una nuova API e chiamate alla vecchia libreria precedente alla 0.9). Ho testato l’API con successo su Cupcake e sulla versione 1.1, il funzionamento sembra abbastanza stabile.

Una applicazione (chiamata “Bluetooth Samples”) che mostra funzionalità fornite dalla libreria è disponibile sull’Android Market. Il sorgente dell’applicazione e’ pubblicato insieme alla libreria su Google Code. L’applicazione consente anche di testare la connession RFCOMM, permettendo di connettersi ad un GPS Bluetooth del quale e’ visualizzato lo stream NMEA. Qui di seguito alcuni snapshot dell’applicazione:

bluetooth_samples_01.png

bluetooth_samples_02.png

bluetooth_samples_03.png

bluetooth_samples_05.png

bluetooth_samples_08.png

bluetooth_samples_09.png

bluetooth_samples_10.png

bluetooth_samples_11.png

bluetooth_samples_12.png

bluetooth_samples_13.png

Site Widget Alert


Una delle caratteristiche piu’ interessanti della versione 1.5 “cupcake” di Android è il supporto agli AppWidget, minuscole applicazioncine (o minuscoli frontend di applicazioni più corpose) che vivono sul desktop del terminale. L’orologio, l’accesso rapido alla ricerca di Google, il player musicale o il visualizzatore di foto sono esempi di widget ufficiali.

Ora che l’API è disponibile a tutti gli sviluppatori, cominciano a fioccare numerosi widget. Ed ecco che arriva anche il nostro 🙂

Si chiama Site Alert Widget e consente di monitorare lo stato di un sito web, avendo notifica sul desktop quando risulta non raggiungibile. Utile per chi ha un serverino domestico da controllare oppure dei servizi in produzione che non puo’ monitorare con sistemi piu’ sofisticati. Ecco qualche snapshot:

sitealertwidget_09.png

sitealertwidget_05.png

sitealertwidget_07.png

Disponibile su Android Market gratuitamente: market://search?q=pname:it.gerdavax.sitealert