【问题标题】:Track whether iPhone user dialled USSD code跟踪 iPhone 用户是否拨打了 USSD 代码
【发布时间】:2014-02-16 01:27:29
【问题描述】:

我正在开发一个需要呼叫转移的应用程序。我们知道我们无法在 iOS 中以编程方式拨打 USSD 代码,我们是否可以跟踪用户是否通过 iPhone 拨打了 USSD 代码,或者如果可能的话,是否有一种方法可以检查 SIM 是否用于拨打 USSD 代码?

Update1: M nt 试图以编程方式调用 ussd 但想检查用户是否拨打了它。例如,如果我们手动调用 USSD 代码,我们是否可以检查任何日志或任何类对象变量,这有助于找出是否用户拨打了特定的 USSD 代码

【问题讨论】:

    标签: ios iphone objective-c


    【解决方案1】:

    我认为不使用私有 API 就无法在您的应用上执行此操作。

    为了防止用户恶意重定向电话或更改 电话或帐户的行为,电话应用程序支持 tel 方案中的大多数(但不是全部)特殊字符。 具体来说,如果 URL 包含 * 或 # 字符,电话 应用程序不会尝试拨打相应的电话号码。

    如果您的项目打算部署在 App Store 之外,您可以使用CoreTelephony 框架:

    CTCallDialWithID(@"*100#", -1);
    

    【讨论】:

    • 函数 'CTCallDialWithID' 的隐式声明在 C99 中无效我收到此错误,您有什么想法吗?
    • @MeghsDhameliya 不是真的,这个函数一直是一个私有 API,他们可能从那以后阻止了它的 Xcode 支持。
    【解决方案2】:

    参考这个链接可能对你有帮助

    dial USSD code from iphone programatically

    更新:

    遗憾的是,Apple 已禁止在开发人员可用的(合法)iPhone 沙箱中使用 USSD 代码(通过开放 URL 方法,传入 tel://xxxxxx URL)。这意味着您的运营商不会有任何应用程序可以轻松检索和更改可通过应用程序商店发布的网络设置——至少在 Apple 改变对与 USSD 代码交互的想法之前不会。

    ussd-codes-on-iphone引用

    【讨论】:

    • M nt 试图以编程方式调用 ussd 但想检查用户是否拨打了它。例如,如果我们手动调用 USSD 代码,我们是否可以检查任何日志或任何可以帮助的类对象变量查明用户是否拨打了特定的 USSD 代码
    • 无法通过设备控制台日志。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2020-10-30
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多