I am new to Android and trying to understand the communication between apps.
I am trying to write 3 little apps which can communicate with each other. If you want to send a message to everybody, you just use an implicit broadcast.
implicit Intent intent.setAction("com.example.myChatMessage")
If you want to address only 1 specific receiver, I did it with
explicit Intent intent.setComponent("com.example.test.android.broadcastreceiver.b", "com.example.test.android.broadcastreceiver.b.myBroadcastReceiver")
This works when the broadcast receiver is a seperate class and defined in the AndroidManifest.xml.
My Question: Is it possible to explicitly address a dynamically registered broadcast receiver?
package com.example.test.android.broadcastreceiver.b;
public class MainActivity extends Activity {
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);
}
}
}
It receives all implicit broadcasts but no explicit one — I don't know how to addr