Direccionamiento explícito de una intención a un receptor de difusión dinámica
Soy nuevo en Android y estoy tratando de entender la comunicación entre aplicaciones.
Estoy tratando de escribir 3 pequeñas aplicaciones que pueden comunicarse entre sí. Si desea enviar un mensaje a todo el mundo, simplemente utilice una transmisión implícita.
- ¿Cómo puedo interceptar pulsaciones de botón en el auricular en Android?
- BroadcastReceiver para Ethernet (RJ45) y USB en Android TV
- Android Whatsapp Inicio de llamada Receptor de difusión
- ¿Qué problemas de seguridad puede causar SendBroadcast y qué es un enfoque mejor?
- Tratando de tener un Receptor Broadcast sin filtro
Intención implícita intent.setAction("com.example.myChatMessage")
Si usted desea dirigir solamente 1 receptor specifc lo hice con
intent.setComponent("com.example.test.android.broadcastreceiver.b", "com.example.test.android.broadcastreceiver.b.myBroadcastReceiver")
Intención intent.setComponent("com.example.test.android.broadcastreceiver.b", "com.example.test.android.broadcastreceiver.b.myBroadcastReceiver")
Esto funciona, cuando el receptor de difusión es una clase separada y se define en el AndroidManifest.xml.
Mi pregunta: ¿Es posible dirigirse explícitamente a un receptor de difusión registrado dinámico ?
package com.example.test.android.broadcastreceiver.b; public class MainActivity extends Activity { private final IntentFilter intentfilter = new IntentFilter("com.example.myChatMessage"); private myBroadcastReceiver broadcastreceiver; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); broadcastreceiver = new myBroadcastReceiver(); registerReceiver(broadcastreceiver, intentfilter); } public static class myBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { String message = intent.getStringExtra("message"); Log.d("message", "B received: "+message); } } }
Recibe todas las transmisiones implícitas pero ninguna explícita – no sé caliente para dirigirla. ¿Me puedes ayudar?
- El receptor de reinicio no funciona en los teléfonos xiaomi
- Android BroadcastReceiver onReceive () llamado dos veces en android 4.0
- ¿Es esto posible comprobar si una difusión fue enviada en modo pegajoso? ¿Puede ser abortado / removido?
- Java.lang.InstantiationException: class no tiene constructor de argumento cero
- Android: receptor de la difusión para la pantalla encendido y pantalla apagado
- Cómo identificar la llamada entrante y la llamada saliente en android
- El lanzamiento de una actividad de un receptor de emisión que escucha la llamada saliente
- Excepción extraña de "Receptor no registrado"
No parece posible enviar una intención explícita a un receptor de difusión registrado dinámicamente. Registrar el receptor en AndroidManifest.xml es la única manera.
Si usted registra dinámicamente un BroadcastReceiver – llamando a Context.registerReceiver () – usted suministra una instancia de BroadcastReceiver … Si intenta enviar una intención al receptor nombrando la clase del BroadcastReceiver, nunca será entregada. Sistema no coincidirá con la Intención que declaró a la clase de la instancia BroadcastReceiver que registró.
Fuente: http://onemikro2nd.blogspot.com/2013/09/darker-corners-of-android.html
- UnsupportedOperationException en GLES20Canvas.clipPath con aceleración de hardware deshabilitada en la vista
- Recurso para Android Slight Izquierda / Derecha Acción de diapositiva en listview