アプリ A のマニフェスト (<application> 内) には、次の BroadcastReceiver があります。
そして、このレシーバー:
public class RemoteControl extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w(TAG, "Look what I did!");
}
}
私はApp 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);
}
なんらかの理由で、アプリ B からブロードキャストされたにもかかわらず、アプリ A の onReceive() がトリガーされません。これは何が原因でしょうか?
編集と解決策:ブロードキャストする前に、インテントで setData() を使用したことを書き忘れていました。それは確かに問題でした. setData() を削除するとすぐに、ブロードキャストは意図したとおりに機能しました.