"> ">

A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação para Dispositivos Móveis: Acessando recursos do celular

Apresentações semelhantes


Apresentação em tema: "Programação para Dispositivos Móveis: Acessando recursos do celular"— Transcrição da apresentação:

1 Programação para Dispositivos Móveis: Acessando recursos do celular
Prof. Rafael Vieira THIS WORK IS LICENSED UNDER THE CREATIVE COMMONS ATTRIBUTION-SHAREALIKE 4.0 INTERNATIONAL LICENSE. TO VIEW A COPY OF THIS LICENSE, VISIT OR SEND A LETTER TO CREATIVE COMMONS, PO BOX 1866, MOUNTAIN VIEW, CA 94042, USA. CREATED BY RAFAEL S. T. VIEIRA

2 Manifest (acesso a Câmera)
<uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="true" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

3 Usando a aplicação de Câmera do Android
Criar um objeto Intent dos seguintes tipos: MediaStore.ACTION_IMAGE_CAPTURE MediaStore.ACTION_VIDEO_CAPTURE Chamar a aplicacação default pelo Intent: startActivityForResult() Receba do resultado pelo objeto Intent onActivityResult()

4 Para video troque o número 100 por 200, e a palavra IMAGE para VIDEO.
Tirando uma Foto private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100; private Uri fileUri; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // create Intent to take a picture and return control to the calling application Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name // start the image capture Intent startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); } Para video troque o número 100 por 200, e a palavra IMAGE para VIDEO.

5 Para video troque o número 100 por 200, e a palavra IMAGE para VIDEO.
Salvando a Foto private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { if (resultCode == RESULT_OK) { // Image captured and saved to fileUri specified in the Intent Toast.makeText(this, "Image saved to:\n" + data.getData(), Toast.LENGTH_LONG).show(); } else if (resultCode == RESULT_CANCELED) { // User cancelled the image capture } else { // Image capture failed, advise user } Para video troque o número 100 por 200, e a palavra IMAGE para VIDEO.

6 Desenvolvendo sua própria aplicação de Câmera
Detectar e acessar Camera. (import android.hardware.camera ou camera2 – novo) Criar uma classe de Preview que herda de SurfaceView e implementa a interface SurfaceHolder. Contrua um layout para sua Câmera que irá comportar a classe de Preview. Adicione Listeners para capturar ações do usuário na sua interface chamando os métodos da classe Camera. Tire uma foto e armazene segundo o formato que você desejar. Libere a câmera para que outras aplicações possam usá-la.

7 Acessando Sensores do Celular
Um celular android pode possuir vários sensores embutidos no celular que podem se classificar em 3 tipos: Sensores de movimento (acelerômetro, giroscópios, rotação, gravidade, etc). Sensores de ambiente (temperatura, pressão, iluminação, humidade, etc). Sensores de posição (GPS, magnetômetro, etc). MANIFEST <uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" /> android.hardware.location.gps android.hardware.sensor.barometer android.hardware.sensor.compass android.hardware.sensor.gyroscope android.hardware.sensor.light android.hardware.sensor.proximity Mais:

8 Verificando sensores disponíveis

9 API para sensores Em android.hardware:
SensorManager, um serviço de sensores para o gerenciamento de vários sensores simultaneamente assim como sua calibração. Sensor, criar uma instância para acessar um único sensor específico. SensorEvent, os dados raw do sensor, seu tipo, precisão, e horário do evento. SensorEventListener, recebe notificações de um sensor, quando seu valor muda, ou sua precisão.

10 Exemplo Listar Sensores disponíveis
package com.example.sensorsimple; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.widget.Toast; import android.hardware.SensorManager; import android.hardware.SensorEventListener; import android.hardware.SensorEvent; import android.hardware.Sensor; import java.util.List; public class MainActivity extends Activity { SensorManager sm = null; TextView textView1 = null; List list; SensorEventListener sel = new SensorEventListener(){ public void onAccuracyChanged(Sensor sensor, int accuracy) {} public void onSensorChanged(SensorEvent event) { float[] values = event.values; textView1.setText("x: "+values[0]+"\ny: "+values[1]+"\nz: "+values[2]); } };

11 Exemplo Listar Sensores disponíveis
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* Get a SensorManager instance */ sm = (SensorManager)getSystemService(SENSOR_SERVICE); textView1 = (TextView)findViewById(R.id.textView1); list = sm.getSensorList(Sensor.TYPE_ACCELEROMETER); if(list.size()>0){ sm.registerListener(sel, (Sensor) list.get(0), SensorManager.SENSOR_DELAY_NORMAL); }else{ Toast.makeText(getBaseContext(), "Error: No Accelerometer.", Toast.LENGTH_LONG).show(); } protected void onStop() { sm.unregisterListener(sel); super.onStop(); Código Completo:

12 Fim


Carregar ppt "Programação para Dispositivos Móveis: Acessando recursos do celular"

Apresentações semelhantes


Anúncios Google