我申请了新的对外呼叫广播接收器。它很好用。
但是我想知道哪个应用程序用户拨打了电话。
例如,从默认拨号或谷歌语音应用程序?
我怎么知道这个?
谢谢。
发布于 2012-07-31 23:29:33
我的第一次尝试将是获得广播的来源或意图发送广播。然而,Android并没有提供一种知道这一点的方法,而且他们甚至没有强调这一点,因为对用户来说,广播的内容通常是有意义的。
如果这是你自己的应用程序发送广播,这将是非常容易的迈克尔建议。您将添加一个额外的指示您的广播源到接收器。但是,您可以从OUTGOING_CALL意图中获得的唯一额外信息是呼叫所处的号码。
不过,我心中有一个解决办法,这是不能保证行得通的,纯属理论上的。你在这里冒着自己的风险。
这样做的目的是检查您的接收器中最近使用的应用程序,并假设调用是通过Google完成的,如果它是最近使用的应用程序之一。这是因为,我们期望用户在谷歌语音上的活动,一旦通话和您的接收器拦截这一点。
所以在你的接收器里,你可以:
ActivityManager m = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
RecentTaskInfo task = m.getRecentTasks(3,0).get(0);
String nameofrecentlyusedapp = task.ComponentName.toString();检查最近使用的应用程序,甚至使用get(1)和get(2)读取两个最近使用的应用程序,以提供更大的灵活性。
试试看,让我们知道它是否有效。
https://stackoverflow.com/questions/11665243
复制相似问题