如何找出哪个活动启动了触发您的 BroadCastReceiver 的意图?
我有一个应用程序,按下按钮即可拨打一些电话。 我拨打一个号码:
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+o.getTel()));
startActivity(callIntent);
我有一个广播接收器,可以检测通话结束。 但此广播接收器还接收从其他应用程序(例如拨号器应用程序)启动的呼叫。
如何区分从其他应用程序发起的呼叫和在我的应用程序中发起的呼叫?
总氮
I have an app, where some calls can be made when you press a button.
I call a number with:
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+o.getTel()));
startActivity(callIntent);
I have a broadcast receiver that detects end of call.
But this broadcast receiver also receives calls started from other apps (e.g. dialer app).
How can i differentiate calls started from other apps from calls started in mine?
Tnx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在调用sendBroadcast(intent)之前,在intent中添加一个额外的内容,
例如i.putExtra("sender", "myidentifier")
然后在接收者的onReceive中
StringencodedType = Intent .getStringExtra("sender");
然后你可以测试这个字符串。
Before you call sendBroadcast(intent), add an extra to the intent,
e.g i.putExtra("sender", "my identifier")
Then in the onReceive of the receiver
String encodedType = intent.getStringExtra("sender");
Then you can test for this string.