【问题标题】:Check if receiver picked up phone检查接收器是否接听电话
【发布时间】:2014-08-07 07:56:54
【问题描述】:

在 Android 中,我需要确定接收方是否接听了拨出电话。这似乎不可能,因为 TelephonyManager 不提供该状态。其他人建议查看通话记录列表并检查最后一个通话号码的持续时间。这不好,因为最后一个被叫号码可能是几小时或几天前。还有其他建议吗?

【问题讨论】:

    标签: android


    【解决方案1】:

    这是不可能的,因为当您开始拨打电话时,会调用通话状态摘机,甚至包括响铃时间,即使是掉线电话也包括在内,因此不能信任摘机。

    See this link

    获取最后一次通话并按时间筛选,从中可以获取通话时长。

    解决您的疑问。

    拨号器的工作原理

    当接收者拿起电话时,它永远不会启动计时器,只需在接听电话之前拿起您的电话号码,您就会看到计时器已启动。这只是摘机状态的时间,而不是用户拿起电话的时间。

    此外,网络提供商不会通过任何应用程序通知您确切的通话时间和费用,并且您无法访问该数据。 如果您只想要拨号器应用程序,那么 Drax 的答案很接近。

    【讨论】:

    • 但 Dialer 应用程序知道呼叫者何时接听。所以,如果它可以弄清楚,为什么我们不能呢?显然,有一种方法,但它是暗示性的。
    • 即使拨号器应用程序在我们拨打号码后立即启动计时器,它是提供确切通话时间的网络,我们也无法访问所有数据
    • 但拨号器应用程序只是另一个 Android 应用程序。如果它可以访问表明接收者已经接收到它的东西,那么这一定是一个 API 特性。您甚至可以在 Google Play 中安装一些应用程序来替代拨号器应用程序,并且仍然提供该指示。
    • 我可以求助于通话记录,但你没有解决 Dialer 应用程序如何做到这一点的问题。
    • 这不是真的。拨号器应用程序确切地知道另一端的接收器何时被拾起。看到这个人的帖子:stackoverflow.com/q/2250455/753632
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多