首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android新出线电话

Android新出线电话
EN

Stack Overflow用户
提问于 2012-07-26 08:24:37
回答 1查看 366关注 0票数 3

可能重复: How to determine the sender of Broadcast Intent

我申请了新的对外呼叫广播接收器。它很好用。

但是我想知道哪个应用程序用户拨打了电话。

例如,从默认拨号或谷歌语音应用程序?

我怎么知道这个?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-07-31 23:29:33

我的第一次尝试将是获得广播的来源或意图发送广播。然而,Android并没有提供一种知道这一点的方法,而且他们甚至没有强调这一点,因为对用户来说,广播的内容通常是有意义的。

如果这是你自己的应用程序发送广播,这将是非常容易的迈克尔建议。您将添加一个额外的指示您的广播源到接收器。但是,您可以从OUTGOING_CALL意图中获得的唯一额外信息是呼叫所处的号码。

不过,我心中有一个解决办法,这是不能保证行得通的,纯属理论上的。你在这里冒着自己的风险。

这样做的目的是检查您的接收器中最近使用的应用程序,并假设调用是通过Google完成的,如果它是最近使用的应用程序之一。这是因为,我们期望用户在谷歌语音上的活动,一旦通话和您的接收器拦截这一点。

所以在你的接收器里,你可以:

代码语言:javascript
复制
ActivityManager m = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
RecentTaskInfo task = m.getRecentTasks(3,0).get(0);
String nameofrecentlyusedapp = task.ComponentName.toString();

检查最近使用的应用程序,甚至使用get(1)和get(2)读取两个最近使用的应用程序,以提供更大的灵活性。

试试看,让我们知道它是否有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11665243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档