Приемник вещания не активирован - PullRequest
0 голосов
/ 24 мая 2018

Получив данные из внешнего сообщения, я хочу отправить их в эфир, чтобы распечатать на экране.

Вот часть моей службы, которая отправляет данные в широковещательную рассылку:

Intent intent = new Intent("CodeFilter_MemoryRead"); 
intent.putExtra("data_memory_read_from_hce", MemoryStringValue);
this.sendBroadcast(intent);

И действия, которые предназначены для их получения:

@Override
protected void onStart() {
    super.onStart();
    final IntentFilter hceNotificationsFilter = new IntentFilter();
    hceNotificationsFilter.addAction("CodeFilter");
    registerReceiver(hceNotificationsReceiver, hceNotificationsFilter);
}    

final BroadcastReceiver hceNotificationsReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String hcedata = intent.getExtras().toString();
        RealMessageReceived.setText(hcedata);
        Log.i(TAG, "Broadcast listener activated");
        }
};

ПроблемаУ меня есть то, что мой BroadcastReceiver никогда не активируется даже после команды this.sendBroadcast(intent).Можете ли вы помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 24 мая 2018

Строка, с которой вы создаете Intent, не совпадает со строкой, которую вы добавляете к IntentFilter.Они должны быть одинаковыми, чтобы получатель мог получить намерение.Следующий код должен работать:

Intent intent = new Intent("CodeFilter_MemoryRead"); 
intent.putExtra("data_memory_read_from_hce", MemoryStringValue);
this.sendBroadcast(intent);

и

@Override
protected void onStart() {
    super.onStart();
    final IntentFilter hceNotificationsFilter = new IntentFilter();
    hceNotificationsFilter.addAction("CodeFilter_MemoryRead");
    registerReceiver(hceNotificationsReceiver, hceNotificationsFilter);
}    

final BroadcastReceiver hceNotificationsReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String hcedata = intent.getExtras().toString();
        RealMessageReceived.setText(hcedata);
        Log.i(TAG, "Broadcast listener activated");
        }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...