O documento discute a comunicação entre aplicações Android através de Intents e como utilizar Activitys, BroadcastReceivers, Notifications e Services. Ele explica como navegar entre Activitys, enviar e receber parâmetros através de Intents, chamar apps nativas do Android e definir filtros de intenção.
25. Intent e Activity 1: Activity simples Intent it = new Intent(this, ClasseActivity2.class); startActivity(it); 2: Activity enviando parâmetros Intent it = new Intent(this, ClasseActivity2.class); it.putExtras(“codigo”, “1”); startActivity(it);
26. Intent e Activity 3: Activity recebendo parâmetros Intent it = getIntent(); if (it != null) { String codigo = it.getStringExtra(“codigo”); if (codigo != null) { // AQUI JÁ TEM O CÓDIGO RECEBIDO } }
27. Intent e Activity com retorno 4: Activity com retorno Intent it = new Intent(this, ClasseActivity2.class); startActivityForResult(it, CODIGO_ACTIVITY ); ... protected void onActivityResult( int codigo , int resultado, Intent it) { // it.getData(); it.getExtras() ; getIntExtras(“x”,1); }
28. Chamando Apps Nativas 1/5 5: Tocar um mp3 na web: Uri u = Uri.parse(“ http://music.com/Black.mp3 ”); Intent it = new Intent( Intent.ACTION_VIEW , u); it.setType(“audio/*”); startActivity(it);
29. Chamando Apps Nativas 2/5 6: Visualizar os contatos: Uri u = Uri.parse(“content://com.android.contacts/contacs/” ); Intent it = new Intent( Intent.ACTION_PICK , u); startActivity(it);
30. Chamando Apps Nativas 3/5 7: Abrir Google Maps na área 51: Uri u = Uri.parse(“geo: 37.240000,-115.810000”); Intent it = new Intent( Intent.ACTION_VIEW , u); startActivity(it);
31. Chamando Apps Nativas 4/5 8: Fazer uma ligação: Uri u = Uri.parse(“tel:9981115328”); Intent it = new Intent( Intent.ACTION_CALL , u); startActivity(it);
32. Chamando Apps Nativas 5/5 9: Abrir o browser: Uri u = Uri.parse(“http://www.runze.com.br”); Intent it = new Intent( Intent.ACTION_VIEW , u); startActivity(it);
43. Uma ação de um filtro de intenção Uma ação é definida dentro do arquivo AndroidManisfest.xml utilizando a tag <intent-filter> e deve ter pelo menos uma categoria, DEFAULT!
44. Envio de Mensagem por uma Intent Quando uma Intent envia uma mensagem ao S.O., este tenta localizar algum filtro de intenção (intent-filter) devidamente configurado para receber a mesma mensagem!
45. Filtro de Intenção O filtro de intenção para uma determinada ação pode estar definido em qualquer aplicação ou Activity nativa do S.O. ou criada pelo desenvolvedor!
46. Filtro de Intenção Além do nome da ação, um filtro de intenção pode definir ainda uma categoria específica e um conjunto de dados de entrada que o identifica unicamente no S.O.
52. O Android permite que qualquer aplicação nativa seja substituída, bastando para isso adicionar um filtro de intenção correto no AndroidManifest.xml!
60. Recebendo um BroadcastReceiver 1: Configurar o receptor no AndroidManifest.xml <receiver android:name=”Rec”> <intent-filter> <action android:name= ”BR” /> <category android:name = ”android.intent.category.DEFAULT”/> </intent-filter> </receiver>
61. Recebendo um BroadcastReceiver 2: Definição da classe Rec public class Rec extends BroadcastReceiver { @override public void onReceive(Context c, Intent it) { // execute algo rapidamente aqui } }
62.
63. Para executar tarefas que demandam tempo e processamento, deve ser utilizando a classe Service.
70. Notification: Uso 1: Recupera o serviço NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 2: Gera um Notification Notification n = new Notification(icone, MS_BARRASTATUS, System.currentTimeMillis());
71. Notification: Uso 3: Activity a ser executada PendingIntent p = PendingIntent.getActivity (this, 0, new Intent(this, acNotifica ), 0); 4: Informações n.setLatestEventInfo(this, TITULO, MSG, p);
72. Notification: Uso 4: Algum efeito? Vibrate? n.vibrate = new long[] {100, 250, 100, 500}; 5: Posta a notificação na barra de status nm.notify(R.string.app_name, n);
73. Notification: Uso 5: Encerra a notificação na Activity receptora ( acNotifica ) nm.cancel(R.string.app_name);