7. Implementando Touch
• Touch não é um mouse!
• Criar elementos suficientemente grandes
• Suporte gestos e comportamentos padrão
(mantendo coerência com o sistema)
• Não usar Touch só para dizer que usou
• Touch precisa ser tolerante (impreciso)
7
10. Sensores disponíveis no Ultrabook
• Acelerômetro
– Aceleração da força G nos eixos x, y, z
• Giroscópio
– Velocidade angular (taxa que sua orientação muda)
nos eixos x, y e z
• Magnetômetro
– Intensidade, direção e sentido de um campo
magnético
• GPS (Global Positioning System)
– Localização e informação de tempo
• NFC (Near Field Communication)
– Comunicação
• Sensor de luz ambiente
– Nível de Luz no Ambiente 10
13. API Windows – Como usar?
• Obter o objeto default do sensor utilizando o método
GetDefault()
• Para fazer apenas uma leitura chamar o método
GetCurrentReading(), de preferência
• Para receber uma notificação contendo a leitura do sensor:
– Setar a variável ReportInterval (não esquecer do
MinimumReportInterval)
– Registrar um método para receber o evento no ReadingChanged
(delegate)
– Tratar o evento dentro do método
• Esse procedimento é válido para todos os sensores
disponíveis no namespace Windows.Sensors
13
14. Acessando sensores com JNI
(Windows.Sensors)
1. [Java] Criar um método nativo para registrar o objeto
que irá tratar os eventos do sensor
2. Gerar o header usando javah
3. [C++] Configurar o projeto do Visual Studio com as
DLLs e namespaces da API do Windows 8
4. [C++] Armazenar uma referência para o objeto e o ID
do método no Java (GetMethodID) que irá receber o
evento
14
15. Acessando sensores com JNI
(Windows.Sensors)
4. [C++] Inicializar o sensor e setar o “listener” do
evento (API Windows)
5. [C++] Quando o evento for acionado, redirecionar
para o Java utilizando a função CallVoidMethod
passando o objeto, o id do método e seus parâmetros
6. [Java] Tratar o evento!
Demo!
15