Android e i sui sensori – Openintents

Come già detto nel precedente articolo i terminali Android come l’htc dream(G1) o l’htc magic(G2) possiedono dei sensori molto interessanti per l’interattività che essi possono fornire all’interfaccia grafica del dispositivo, parliamo dell’accelerometro e del  compasso, se al momento  volessimo però sviluppare applicazioni che utilizzano questi sensori avremo delle serie difficoltà in quanto l’emulatore fornito con l’SDK non consente di poter testare l’applicazione sviluppata.

Spinto dall’esigenza di sviluppare un applicativo che utilizzasse sia l’accelerometro che il compasso, ho cercato in rete una soluzione al problema, ho trovato un progetto open source rilasciato sulla piattaforma google code, questo progetto si chiama openintents.

Openintents, oltre ai numerosi applicativi ha rilasciato un tool che faceva proprio al mio caso, il tool si chiama SensorSimulator, questo tool scritto in java è in grado di connettersi all’emulatore Android tramite l’apertura di un socket di comunicazione, il simulatore di sensori una volta connesso è infatti in grado di veicolari la simulazione dei diversi sensori tra cui l’accelerometro e il compasso.

Come procedere all’installazione

  • Scaricare l’ultima versione openintents-binary-x.x.x.zip
  • Scompattare lo zip ed eseguire il tool SensorSimulator.jar
  • Installare sull’emulatore l’ultima versione di OpenIntents.apk
  • Installare samples/OpenGLSensor.apk (Applicazione d’esempio)

Come procedere al suo utilizzo

Una volta eseguita l’applicazione “SensorSimulator” sul vostro  emultore scegliere l’opzione settings, impostare quindi l’indirizzo IP della vostra macchia e il socket utilizzato per la comunicazione(8010) settings

settImpostati i parametri di connessione, spostarsi nel tab “testing”  premere quindi sul pulsante Connect per eseguire un test di connessione, mettento “la spunta” sui vari sensori disponibili dovreste riuscire a ricevere le tre coordinate dal simulatore,  variando il posizionamento del telefono vituale dovremmo essere in grado di vedere le coordinate variare.

testing

sens_test

Ora che tutto è pronto proviamo l’applicazione di demo, premere il pulsante ritorno(sopra il tasto per chiudere la telefonata) sul nostro emulatore.

sensorsimulator01

Nel prossimo  articolo vedremo come sviluppare un applicazione d’esempio che utilizza questa libreria “openintent”.

Share/Save/Bookmark

Android e i sui sensori – Un pò di teoria

L’accelerometro e il compasso

Nei moderni dispositivi “mobile” sono stati aggiunti dei componenti hardware in grado di rilevare l’orientamento e l’accelerazione dei dispositivi, questi nuovi dispositivi hanno consentito di sviluppare nuove tecniche di input che consentono di interagire con il device in modo più diretto e tramite la gestualità.

Android, tramite la componente Sensor Manager è in grado di gestire i sensori hardware disponibili sul dispositivo, questa classe consente di determinare l’orientamento, monitorare il  cambiamento dell’orientamento e monitorare l’accelerazione rispetto uno dei tre assi.

Accelerometro(da wikipedia)

Un accelerometro è uno strumento di misura in grado di rilevare e/o misurare l’accelerazione.
Negli ultimi anni l’importanza di questi sensori è notevolmente accresciuta, questo perché, accanto alle tradizionali applicazioni in ambito scientifico e aerospaziale, si è sviluppato il loro uso un molti campi civili (automobilistico, testing, analisi meccanica, eccetera).

Con il moltiplicarsi delle applicazioni, sono accresciute anche le tipologie di questi strumenti, e oggi se ne possono contare decine tipi, ognuno con caratteristiche funzionali e costruttive differenti.

Gli accelerometri sono presenti oggi in molti dispositivi portabili controlli per video games: Nokia N95, Nokia 5800, Sony Ericsson W910i, Blackberry Storm, Apple iPhone], Apple iPod Nano 4G Nintendo’s Wii Remote e  Google G1.

Utilizzando la chiamata getSystemService è possibile acquisire una reference al  servizio relativo ai sensori, il metodo  public abstract Object getSystemService (String name) è in grado infatti di ritornare un riferimento a livello di sistema al servizio,  Context.SENSOR_SERVICE è il nome del servizio che dovremo utilizzare per acquisire un instanza del SensorManager di Android.


Share/Save/Bookmark