Я новичок в Android и пытаюсь понять связь между приложениями.
Я пытаюсь написать 3 маленьких приложения, которые могут общаться друг с другом. Если вы хотите отправить сообщение всем, вы просто используете неявное вещание.
неявное намерение intent.setAction("com.example.myChatMessage")
если вы хотите только 1 конкретный приемник, я сделал это с помощью
explicite Intent intent.setComponent("com.example.test.android.broadcastreceiver.b",
"com.example.test.android.broadcastreceiver.b.myBroadcastReceiver")
это работает, когда широковещательный приемник является отдельным классом и определен в AndroidManifest.xml.
Мой вопрос: Возможно ли явное обращение к динамически зарегистрированному широковещательному приемнику?
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);
}
}
}
Он получает все неявные трансляции, но не имеет явного ответа - я не знаю, как hot, чтобы его адресовать. Можете ли вы мне помочь?