Android 为什么';我的广播接收器接收不到来自其他应用程序的广播?

Android 为什么';我的广播接收器接收不到来自其他应用程序的广播?,android,android-intent,broadcastreceiver,android-manifest,Android,Android Intent,Broadcastreceiver,Android Manifest,应用程序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

应用程序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);
}
无论出于何种原因,应用程序A中的onReceive()从未被触发,即使它是从应用程序B广播的。这是什么原因


编辑&解决方案:我忘了在广播之前在Intent上使用setData()。这确实是问题所在:我一删除setData(),广播就按预期工作。

最初我忘了在广播之前在Intent上使用setData()。这确实是问题所在:我一删除setData(),广播就按预期工作

我已将putExtra()改为用于意图元数据:

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

奇怪。代码看起来不错,我也一样。这是令人沮丧的。尝试添加到意图过滤器罗尼安:我认为这是问题所在,但唉!我用解决方案更新了这个问题:我在Intent上使用了setData(),这会以某种方式阻止它被发送。