Académique Documents
Professionnel Documents
Culture Documents
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
OFERTA
RELMPAGO
DELL
Inspiron 14 Srie 3000 com HD500, Frete Grtis e Intel Core. Veja!
1/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
Descrio
android.hardware.Camera
android.hardware.SensorManager
android.hardware.SensorListener
android.media.MediaRecorder
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
2/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
android.os.*
java.util.Date
java.util.Timer
java.util.TimerTask
3/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
incluem:
Tipo do sensor
Orientao, acelermetro, iluminao, campo magntico, proximidade,
temperatura, etc.
Amostragem
Rpido, jogo, normal, interface do usurio. Quando uma aplicao solicita uma
taxa de amostragem especifica, apenas uma dica ou sugesto para o subsistema de sensores. No existe nenhuma garantia que uma taxa em particular
esteja disponivel.
Preciso
Alta, baixa, mdia, incerto.
A interface SensorListener a base para as aplicaes que usam sensores. Ela
inclue dois metdos necessrios:
onSensorChanged(int sensor, float values[]): invocado toda vez que o valor
do sensor mudado. O metdo invocado apenas para sensores que esto
sendo monitorados por essa aplicao (mais sobre isso abaixo). Os
argumentos do metdo incluem um inteiro que identifica o sensor que sofreu
alterao, assim como um array de valores que representam os dados do
sensor. Alguns sensores fornecem apenas um nico valor, enquanto outros
fornecem trs valores. Os sensores de orientao e acelermetro fornecem
cada um trs valores.
onAcurracyChanged(int sensor, int accuracy): invocado quando a preciso
de um sensor muda. Os argumentos so dois inteiro: Um representa o sensor
que mudou e o outro representa a nova preciso do sensor.
Para interagir com um sensor, uma aplicao precisa registrar que quer
escutar um ou mais sensores. O registro feito com o metdo registerListerner
da classe SensorManager. O cdigo exemplo desse artigo demonstra como uma
aplicao registra um SensorListener.
Lembre que nem todos os dispositivos Android suportam algum dos ou todos os
sensores definidos no SDK. Sua aplicao precisa saber quais sensores esto
disponveis para seu uso no dispositivo que est sendo executada.
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
4/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
A aplicao foi criada usando o ambiente Eclipse como o plugin ADT. (Para mais
informao sobre o desenvolvimento de aplicaes Android com o Eclipse, clique
klebermota.eti.br
Blogsobrecincia,computaoeprojetosrelacionados
package com.msi.ibm.eyes;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.hardware.SensorManager;
import android.hardware.SensorListener;
public class IBMEyes extends Activity implements SensorListener {
final String tag = "IBMEyes";
SensorManager sm = null;
TextView xViewA = null;
TextView yViewA = null;
TextView zViewA = null;
Segurana Digital
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
5/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
Com
a Embratel,
Sua Empresa se
TextView
xViewO = null;
TextView yViewO = null;
Conecta
zViewO
Web com
TextView
= null;Toda Segurana!
6/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
}
}
A aplicao foi escrita como uma aplicao normal baseada em activity porque
faz simplesmente atualizar a tela com dados obtidos dos sensores. Em uma
aplicao onde o dispositivo pode estar executando outras atividades em
segundo plano, construir a aplicao como um Service pode ser mais apropriado.
O metdo onCreate da Activity pega uma referncia para o SensorManager, onde
todas as funes relacionadas a sensores so baseadas. O metdo tambm cria
referncias para seis TextViews necessrios para a exibio dos dados dos
sensores.
O metdo onResume() usa a referncia ao SensorManager para registrar por
mudanas nos sensores atravs do metdo registerListerner:
O primeiro parmetro uma instncia da classe que implementa a interface
SensorListener.
O segundo parmetro uma mscara de bits para o sensor desejado. Nesse
caso, a aplicao est requisitando dados de SENSOR_ORIENTATION e
SENSOR_ACCELEROMETER.
O terceiro parmetro uma dica para o sistema que indica rapidamente como
a aplicao solicita atualizaes nos valores do sensor.
Quando a aplicaao pausada, voc precisa cancelar o registro ao listener assim
voc no recebe mais atualizaes dos sensores. Isso feito pelo metdo
unregisterListener do SensorManager. O nico parmetro a instncia do
SensorListener.
Em ambas as chamadas dos metdos registerListener e unregisterListener, a
aplicao usa a palavra-chave this. Note que a palavra-chave implements na
definicao da classe onde declarado que essa classe implementa a interface
SensorListener. Esse o motivo porqu voc pode passar this para os metdos
citados.
Um SensorListener precisa implementar os metdos onSensorChanger e
onAccuracyChanged. A aplicao do exemplo no se preocupa realmente como a
preciso dos sensores, mais como os valores atuais de X, Y e Z. O metdo
onAccuracyChanged est fazendo essencialmente nada; s cria uma nova
entrada no arquivo de log a cada vez que invocado.
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
7/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
MediaRecorder mrec ;
File audiofile = null;
private static final String TAG="SoundRecordingDemo";
protected void startRecording() throws IOException
{
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
if (mSampleFile == null)
{
File sampleDir = Environment.getExternalStorageDirectory();
try
{
audiofile = File.createTempFile("ibm", ".3gp", sampleDir);
}
catch (IOException e)
{
Log.e(TAG,"sdcard access error");
return;
}
}
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
8/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
mrec.setOutputFile(audiofile.getAbsolutePath());
mrec.prepare();
mrec.start();
}
protected void stopRecording()
{
mrec.stop();
mrec.release();
processaudiofile(audiofile.getAbsolutePath());
}
protected void processaudiofile()
{
ContentValues values = new ContentValues(3);
long current = System.currentTimeMillis();
values.put(MediaStore.Audio.Media.TITLE, "audio" +
audiofile.getName());
values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current /
1000));
values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/3gpp");
values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());
ContentResolver contentResolver = getContentResolver();
Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Uri newUri = contentResolver.insert(base, values);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
newUri));
}
9/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
Quando voc estiver pronto para o inicio do processo de gravao, o metdo start
chamado. A gravao grava os dados capturados no arquivo localizado no
carto at que o metdo stop invocado. O metdo release libera os recursos
alocados pela instncia de MediaRecorder.
Assim que o audio tiver sido capturado, existem algumas que aes que podem
ser executadas:
Adicionar o arquivo de audio a biblioteca de mdia do dispositivo.
Executar algum algoritmo de reconhecimento de padro para identificar o
som:
um beb chorando?
a voz do dono, e devemos desbloquear o telefone?
a frase abre-te sesame que destrava a porta da entrada secreta?
Automaticamente fazer o upload do arquivo para um local da rede para ser
processado.
No cdigo exemplo, o metdo processaudiofile adiciona o arquivo biblioteca de
mdia. Um Intend usado para notificar a aplicao de mdia que um novo
contedo est disponivel.
Uma observao final sobre o pedao de cdigo: Se voc o executar, o audio no
ser gravado de primeira. Voc ver que um arquivo foi criado, mas sem
nenhum audio. Voc precisa adicionar a seguinte permisso no arquivo
AndroidManisfest.xml:
<uses-permission android:name="android.permission.RECORD_AUDIO"></usespermission>
Fonte: http://www.ibm.com/developerworks/opensource/library/os-androidsensor/index.html
Like
11
Tweet
14
Compartilhar
Related posts:
1. Exemplo prtico de aplicao grfica (Swing) utilizando Java Ola pessoal, o
material disponvel aqui foi produzido especialmente para quem esta comeando a desenhar interfaces
grficas utilizando a linguagem...
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
10/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
11/12
23/12/2014
UtilizandoossensoresdoAndroidemsuaaplicaoparamonitoramentodoambienteexterno|klebermota.eti.br
1Comentrio
BlogKleberMota
OrdenarporMaisrecente
Entrar
Compartilhar Favorito
Participedadiscusso...
DouglasMareli 4yearsago
Boatraduo.Pormnemaquinemnafontefalasobreoarquivobuild.xml
queessencialparaconstruiraclasseR.AclasseR,porsuavez,contem
atributosnecessriosparaofuncionamentodomtodoonCreatepertencente
aclasseIBMEyes.
Responder Compartilhar
OQUEISSO?
TAMBMEMBLOGKLEBERMOTA
TutorialdeCanvasParte3
Usandoimagens
ComousarumGravadorDigital
Porttilemumagravaodevdeo
2comentrios8monthsago
1comentrio8monthsago
GuestOlkleber,excelentepost,
ChristianBaptistellaBoatarde,
tenhoumadvida:consigogeraro
data:URL,copioeatravsdeum
gerenciadordemysqlgravoemum
campoblobeconsigorecuperara
UsandoacmeranoAndroid
imagem,no
(Traduodadocumentaooficial)
amigo!Gostariadesaberse,aoplugar
ummicexterno,osmicsdogravador
porttilsodesativados,ouseh
algumaformadegravarcomo"3"
Comogravarudiodealta
mics(2
qualidadeparafilmes
1comentrio8monthsago
2comentrios8monthsago
WellingtonLopesOlKleber,estou
KleberMotaRonaldo,vocpode
tentandoimplementaremminha
aplicao,acamerasemvisualizao
daimagem,ouseja,aopressionarum
boto,sertiradoafotosemqueo
conectaromicrofonediretamenteao
gravadorzoomsemproblema,
tomandoocuidadodefazermarcaes
nagravaoparaocasodeserpreciso
http://www.klebermota.eti.br/2010/11/22/utilizandoossensoresdoandroidemsuaaplicacaoparamonitoramentodoambienteexterno/
12/12