Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Uso de Sensores

Contatos

Android Robô

Brincando com Receiver

* Intercepta eventos do sistema operacional e/ou lançados por sua aplicação;

* E se? ...

public class MainActivity extends ActionBarActivity

implements SensorEventListener{

@Override

protected void onCreate(Bundle savedInstanceState) {

SensorManager s = (SensorManager)

getSystemService

(Context.SENSOR_SERVICE);

s.registerListener(this, s.getDefaultSensor(Sensor.TYPE_LIGHT), SensorManager.SENSOR_DELAY_NORMAL);

}

@Override

public void onSensorChanged(

SensorEvent sensorEvent) {}

public void paraMidia(){}

public void tocaMidia(){}

public void onAccuracyChanged(

Sensor sensor, int i) {}

* Android é Linux;

* Logo tem um SHELL;

* Através do ADB (Android Debug Bridge) podemos acessar este shell;

* Vamos brincar um pouco:

$ adb shell

am start -a android.intent.action.CALL -d tel://12345678

Uso de Sensores

Contatos

Android Robô

Contatos

public class MainActivity extends ActionBarActivity

implements SensorEventListener{

...

@Override

public void onSensorChanged(

SensorEvent sensorEvent) {

float[] leitura = sensorEvent.values;

if (leitura[0] < 15){

tocaMidia();

} else {

paraMidia();

}

}

public void paraMidia(){}

public void tocaMidia(){}

* E se esta linha se aplicasse a todos os contatos? É possível?

Controlando Android remotamente;

* Content Provider: espécie de banco de dados relacional;

* Possibilidade de mudança nas propriedades de contatos;

* E se?

Bônus Track

* https://github.com/ricardoogliari/ExplosaoCaboEnergia

* Mensagens de Texto;

Hacking One

Contatos

Grilho fantasma

https://github.com/ricardoogliari/GrilhoFantasma

Android Robô

* E se configurar para uma mídia que não existe:

ContentValues cv = new ContentValues();

values.put(ContactsContract.Data.CUSTOM_RINGTONE, "eunaotenhoessamidia");

getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, cv , "DISPLAY_NAME = 'nome'", null);

Brincando com Receiver

Contatos

am start -a android.intent.action.SEND -d "mensagem" -t text/plain

am start -a android.intent.action.VIEW -d geo:0,0?q=Tokyo

adb shell am start -a android.intent.action.VIEW -d "http://developer.android.com"

https://github.com/ricardoogliari/UsandoAdbShell

* rogliariping@gmail.com

* @mobilidadetudo

* github.com/ricardoogliari

* http://mobilebrazilconference.com.br/

* AndroidManifest.xml

<receiver android:name=".Explode">

<intent-filter>

<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>

</intent-filter>

</receiver>

* Classe Java

public class Explode extends BroadcastReceiver{

public void onReceive(Context context, Intent intent) {

MediaPlayer mp = MediaPlayer.create(context, R.drawable.explosao);

mp.start();

}

}

Introdução

Instituições sagradas!

Pais

Quem sou Eu?

Motivação;

* Alvos claros;

* Seguintes frases:

- Precido acordar cedo para estudar;

- Preciso acordar cedo para hacker o facebook;

* Ricardo Ogliari;

* Co-autor do livro Android: do Básico ao Avançado;

* +- 290 publicações;

* FIAP, Globalcode e BTCJam;

* Fundador THT;

* 10 nomes open-hardware;

Sogras!!!

Android x Sogra

Learn more about creating dynamic, engaging presentations with Prezi