Почему мой BroadcastReceiver не получает трансляции из другого приложения? - PullRequest
3 голосов
/ 05 июля 2010

Приложение A имеет этот BroadcastReceiver в манифесте (в пределах ):

И этот приемник:

public class RemoteControl extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
      Log.w(TAG, "Look what I did!");
  }
}

Я пытаюсь вызвать это из приложения B:

public void onClick(View v) {
  Log.w(TAG, "Sending stuff");
  Intent i = new Intent("app.a.remotecontrol");
  i.setData("http://test/url");
  sendBroadcast(i);
}

По какой-то причине onReceive () в приложении A никогда не запускается, даже если он транслируется из приложения B. Что может быть причиной этого?

РЕДАКТИРОВАТЬ & РЕШЕНИЕ : Я забыл написать, что я использовал setData () в Intent перед его передачей Это была действительно проблема: как только я удалил setData (), трансляция работала как задумано.

1 Ответ

3 голосов
/ 05 июля 2010

Изначально я забыл написать, что я использовал setData () в Intent перед его трансляцией.Это была действительно проблема: как только я удалил setData (), трансляция работала как задумано.

Я переключился на использование putExtra () вместо метаданных Intent:

Intent i = new Intent("app.a.remotecontrol");
i.putExtra("url", "http://test/url");
sendBroadcast(i);
...