Android:在通话中检测当前活动的电话号码

Android:在通话中检测当前活动的电话号码,android,phone-number,phone-call,Android,Phone Number,Phone Call,目标:在Android平台上,检测用户正在通话的个人的电话号码 目前,使用PhoneListener时,在挂起呼叫的情况下存在一定的歧义 案例:用户在通话中与某人交谈(“通话1”)。因此,用户处于呼叫状态OFFHOOK。然后,用户处于响铃状态,表示来电(“呼叫2”)。然后状态变为OFFHOOK。这可能表示两种可能性中的一种——用户接听电话2,并将电话1挂起。或者,用户拒绝呼叫2并返回呼叫1 如何区分这两种情况?是否可以在手机上检测当前通话的电话号码?使用PhoneStateLister和。 在那

目标:在Android平台上,检测用户正在通话的个人的电话号码

目前,使用PhoneListener时,在挂起呼叫的情况下存在一定的歧义

案例:用户在通话中与某人交谈(“通话1”)。因此,用户处于呼叫状态OFFHOOK。然后,用户处于响铃状态,表示来电(“呼叫2”)。然后状态变为OFFHOOK。这可能表示两种可能性中的一种——用户接听电话2,并将电话1挂起。或者,用户拒绝呼叫2并返回呼叫1


如何区分这两种情况?是否可以在手机上检测当前通话的电话号码?

使用PhoneStateLister和。
在那里,您还可以看到传入的号码。

有一个模棱两可的问题-收到电话号码的唯一时间是在振铃状态。这种状态并不意味着用户此刻正在与谁通话,只意味着呼叫正在传入。呼叫1是电话号码X。呼叫2进入时,我收到电话号码Y的铃声状态。该状态现在返回到摘机状态。我在跟谁说话?我是打电话1,电话号码X,还是打电话2,电话号码Y?这就是我试图解决的问题。但是这个方法总是把rinning数作为参数,如果状态是OFFHOOK的话。因此,我认为离线状态下的电话号码是您当前通话的电话号码。但可以肯定的是,您必须测试或查找onCallStateChanged方法的文档。我正在测试2.1版本的NexusOne,OFFHOOK没有提供电话号码作为参数,字符串只是空的(即使它是onCallStateChanged方法中的一个字段)。你能在手机上确认或否认这种行为吗?下面是一些用于测试的快速而肮脏的示例代码:我可以确认这在某些设备上有效,而在其他设备上无效。例如,在TMobile挡泥板上,意图包含电话号码,但在Sprint Hero上则不包含。不幸的是,似乎无法判断(甚至猜测)哪些设备将按预期运行。