【问题标题】:Invoking app in iOS after every phone call ends每次通话结束后在 iOS 中调用应用程序
【发布时间】:2013-08-07 07:15:02
【问题描述】:

我正在尝试制作一个应用程序,该应用程序应该会在用户打完电话后立即出现(每次)。

用例

“我的应用”当前未运行。

  1. 用户通过手机拨打电话。
  2. 通话完成后,“我的应用”应该会启动/运行。
  3. 它应该收集一些关于上次通话的信息​​。
  4. 将其写入日志并结束..

我看到任务在后台前台运行,但是每次通话后如何调用 App。

谢谢..

【问题讨论】:

  • 不可能。方案 2 和 3 都不可能是“苹果批准”的方式。也许可以在越狱的 iPhone 上完成
  • @basvk :感谢您的快速回复。因此,如果我放弃第 2 步,是否有可能以“Apple's Approved”的方式获取最近通话的列表。
  • 不,不使用越狱手机 icw 私有 api 根本不可能。我真诚地希望苹果也永远不会启用此功能。
  • 你会如何处理这些信息?
  • @nielsbot :我不能透露整个想法(法律协议),但要回答,我会说我需要它用于用户的安全和保障应用程序。

标签: iphone ios objective-c core-telephony


【解决方案1】:

不能这样做。很简单,iOS(还)没有任何这样的功能,您的应用程序将基于某些系统事件被触发。

但是,当您的应用正在运行时,您可以探索一些替代方案。


如果来电时您的应用正在运行

也许可以注册接收来自UITelephony 的通知(使用UINotificationCenter 呼叫)。

但是,如果您在通话开始时正在积极使用您的应用,则通话结束时它将调用-(void)applicationWillEnterForeground。至于区分电话结束与只是定期回电话,我不知道。但这是一个开始。

如果您的应用程序在调用时正在运行,CoreTelephony Framework 会提供调用状态。 CTCall 类提供有关呼叫状态的信息。我自己没有使用过,但您可能会发现它很有用。

extern NSString const *CTCallStateDialing;
extern NSString const *CTCallStateIncoming;
extern NSString const *CTCallStateConnected;
extern NSString const *CTCallStateDisconnected;

【讨论】:

    【解决方案2】:

    不,在 iOS 5 及更高版本中无法获取通话/短信/电子邮件日志。

    您可以在越狱中执行此操作

    如果你想在 iOS 4 中实现这一点,我有一个有用的信息HERE

    【讨论】:

      【解决方案3】:

      如果设备没有越狱,到目前为止在 iOS 中是不可能的。

      iOS 不允许任何应用程序拦截任何其他应用程序的工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-24
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        相关资源
        最近更新 更多