Vous êtes sur la page 1sur 3

Apndice Sensores Os aparelhos modernos, tais como smartphones e tablets, so muito mais que simples dispositivos de comunicao com

m uma conexo Internet. Eles fornecem uma gama de recursos como microfones, cmeras, acelermetros, bssolas, medidores de temperatura e luminosidade. Muitos desses recursos utilizam informaes captadas por um sensor. Um sensor uma designao comum de dispositivos eltricos, eletrnicos, mecnicos ou biolgicos, capaz de responder a estmulos da natureza fsica (temperatura, presso, umidade, velocidade, acelerao, luminosidade, etc.). Desta forma, os sensores proporcionam uma srie de novas possibilidades de interagir com dispositivos, tais como realidade aumentada e entrada baseada em movimentos. O Android fornece suporte a uma srie de sensores, dentre eles: acelermetro, orientao, gravidade, giroscpio, luz, presso e temperatura. Atualmente, estes sensores so bastante explorados nas aplicaes. Como exemplo, podemos citar o sensor de orientao, usado pelo prprio sistema operacional para alterar o modo de visualizao da tela, de portrait (retrato) para landscape (paisagem) e vice-versa. No contexto de jogos, os sensores de movimento desempenham um papel muito importante, podendo ser responsveis por controlar os movimentos dos personagens. Isto se torna particularmente til tendo em vista que muitos dos smartphones e tablets no possuem um teclado fsico. Deste modo, o acelermetro se torna uma tima alternativa de interao com o usurio. Outro exemplo o uso do sensor de proximidade. Ele fundamental para a reduo do consumo de bateria do aparelho durante as ligaes, pois desabilita o display do dispositivo quando o usurio o aproxima da orelha. API de sensores do Android O acesso aos sensores do aparelho feito atravs da classe SensorManager. Atravs dela possvel registrar um listener que ser responsvel por tratar os eventos gerados pelo sensor. A API de sensores do Android disponibiliza duas interfaces: SensorListener e SensorEventListener. A primeira foi disponibilizada na verso 1.1 do Android, e desde a primeira verso oficial (Cupcake) est obsoleta, sendo ento substituda pela segunda verso. Para obter uma instncia da classe SensorManager feita uma chamada ao mtodo getSystemService(service_name) da classe Context, passando como parmetro Context.SENSOR_SERVICE. Com essa instncia em mos, deve-se registrar um listener para sermos notificados sobre alteraes nos valores do sensor desejado. Isso feito atravs da chamada ao mtodo registerListener() da prpria SensorManager. Este mtodo recebe os seguintes parmetros: uma referncia para uma instncia de uma classe que implemente a interface SensorEventListener; uma instncia de um

objeto da classe Sensor (ou uma de suas subclasses); e a velocidade desejada de atualizao dos dados do sensor. A classe que implementar a interface SensorEventListener deve usar dois mtodos: onAccuracyChanged() e onSensorChanged(). O primeiro responsvel por tratar as informaes referentes preciso quando h mudanas no sensor. Ele recebe como parmetro um objeto do tipo Sensor e o tipo de calibrao do sensor. O tipo de calibrao definido como constantes inteiras na classe SensorManager, que so:

SENSOR_STATUS_ACCURACY_HIGH: A informao do sensor tratada com o mximo de preciso; SENSOR_STATUS_ACCURACY_LOW: A informao do sensor tratada com baixa preciso, sendo necessria calibrao com o ambiente em que o sensor est sendo usado; SENSOR_STATUS_ACCURACY_MEDIUM: A informao do sensor tratada com um determinado nvel de preciso e a calibrao com o ambiente em que o sensor est sendo usado pode melhorar a preciso; SENSOR_STATUS_UNRELIABLE: A informao tratada pelo sensor no confivel e necessria calibrao com o ambiente em que o sensor ser usado. Quando necessrio, a calibrao ser feita pelo programador atravs de algum mecanismo de controle que possa aumentar ou diminuir o nmero de vezes em que a informao do sensor ser tratada pela aplicao. J o mtodo onSensorChanged() invocado toda vez que houver alguma mudana no sensor. Este mtodo possui como parmetro um objeto do tipo SensorEvent, usado para capturar valores do sensor. O segundo parmetro do mtodo registerListener() um objeto que representa o tipo de sensor (acelerao, orientao, temperatura, etc.) que queremos tratar. O sensor mais comumente utilizado para jogos o acelermetro (Accelerometer), que mede a fora aplicada ao dispositivo, em cada um dos seus trs eixos:

Existem trs classes e uma interface envolvidas: android.hardware.Sensor, android.hardware.SensorEvent, android.hardware.SensorEventListener e android.hardware.SensorManager. Para visualizar uma excelente aplicao de sensores, acessem o link:
http://code.google.com/p/android-sensor-demo1.

Vous aimerez peut-être aussi