【问题标题】:Is there a way to get to know if the user is on call while using my app?有没有办法知道用户在使用我的应用程序时是否正在通话?
【发布时间】:2009-11-24 15:33:07
【问题描述】:

是否可以识别用户在使用应用时是否正在通话。

这是场景:

  1. 我接到电话
  2. 我接听电话
  3. 点击主页按钮
  4. 启动应用程序

此时我可以告诉这个应用程序正在后台进行通话吗?

了解屏幕并不是一个完整的选择。因为在网络共享时会变得很困难。

【问题讨论】:

    标签: ios iphone service background phone-call


    【解决方案1】:

    您可以检查状态栏的高度。如果超过 20 像素,则说明您正在通话或网络共享(AT&T 不支持此功能,因此如果您在美国,则必须通话)。

    [UIApplication sharedApplication].statusBarFrame
    

    【讨论】:

    • 我希望没有人会假设因为 AT&T 不支持网络共享,所以它自动意味着他们正在打电话。有很多 iPhone 不是基于美国的......
    • 我也希望如此,而且我仍然对 AT&T 网络共享抱有希望!
    • 每当我在 NSLog 语句中使用 [UIApplication sharedApplication].statusBarFrame 时,它​​都会显示框架为“0”。怎么了?
    • 你是否在 NSStringFromCGRect(...) 中包裹框架?
    • 在这种情况下,例如,如果用户有一个正在进行的 Skype 通话,我如何区分通话和 Skype 通话。
    【解决方案2】:

    没有任何电话状态或功能的公共 API,因此您必须依赖通话的副作用。

    您可以像 Ben Gottlieb 建议的那样检查状态栏,也可以尝试initialize an audio recording,如果失败并出现已在使用的错误,您可以相当确定麦克风正在用于通话。

    【讨论】:

      【解决方案3】:

      为了详细说明 Ben 所说的内容,您需要从设置 View 的高度中减去 [UIApplication sharedApplication].statusBarFrame。

      【讨论】:

        猜你喜欢
        • 2010-12-04
        • 2015-12-18
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        • 1970-01-01
        • 2014-09-11
        • 2010-10-31
        • 2019-12-11
        相关资源
        最近更新 更多