如何使用私有 API 来阻止 iOS 应用程序中的传入呼叫?

发布于 2024-12-03 09:36:12 字数 147 浏览 1 评论 0原文

我希望能够有选择地阻止我正在编写的 iOS 应用程序中的来电。这是供个人使用的,而不是 App Store,所以我可以使用私有 API 来完成此任务。

我最近遇到了核心电话框架。有没有办法使用这个框架来阻止调用?如果没有,我可以使用哪些私有 API 来执行此操作?

I would like to be able to selectively block incoming calls in an iOS application I'm writing. This is intended for personal use, not the App Store, so I'm fine with using private APIs to accomplish this.

I have recently come across the Core Telephony framework. Is there a way to use this framework to block calls? If not, what private APIs could I use to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

白况 2024-12-10 09:36:12

你确定没有吗?
http://tech.ruimaninfo.com/?p=83 上的代码示例展示了如何做这样的事情。
SDK 中的核心电话标头不完整。
当然这意味着没有应用商店
这是我基于示例的代码片段,我链接了

if ([str1 isEqualToString:@"kCTCallIdentificationChangeNotification"])
{
    NSDictionary *info = (__bridge NSDictionary *)userInfo;
    CTCall2 *call = (__bridge CTCall *)[info objectForKey:@"kCTCall"];
    NSString *caller = CTCallCopyAddress(NULL, call);
    NSLog(@"Caller %@",caller);
    if ([caller isEqualToString:@"+1555665753"])
    {
       //disconnect this call
       CTCallDisconnect(call);

}

所需的其他定义:

typedef struct __CTCall CTCall;
extern NSString *CTCallCopyAddress(void*, CTCall *);
extern void CTCallDisconnect(CTCall*);

并且您需要监视电话中心的回调(请参阅链接示例)
我在我的 iOS5 设备上测试了这个片段

Are you sure it does not?
code examples on http://tech.ruimaninfo.com/?p=83 shows how to do such things.
Core Telephony headers in SDK are not complete.
Of course this means no app store
this is my code fragment based on example I linked

if ([str1 isEqualToString:@"kCTCallIdentificationChangeNotification"])
{
    NSDictionary *info = (__bridge NSDictionary *)userInfo;
    CTCall2 *call = (__bridge CTCall *)[info objectForKey:@"kCTCall"];
    NSString *caller = CTCallCopyAddress(NULL, call);
    NSLog(@"Caller %@",caller);
    if ([caller isEqualToString:@"+1555665753"])
    {
       //disconnect this call
       CTCallDisconnect(call);

}

additional definitions needed:

typedef struct __CTCall CTCall;
extern NSString *CTCallCopyAddress(void*, CTCall *);
extern void CTCallDisconnect(CTCall*);

and you need to monitor telephony center's callback(see linked example)
I tested this fragment on my iOS5 device

怪异←思 2024-12-10 09:36:12

核心电话不支持此功能。据我所知,任何已知的私有 API 都无法做到这一点。

Core Telephony doesn't support this. To my knowledge there is no way to do this with any known private APIs either.

蝶…霜飞 2024-12-10 09:36:12

从 iOS 10.0+ 开始,CallKit 包含呼叫阻止和识别 API:https://developer.apple。 com/documentation/callkit

(为 2020 年或将来发现此内容的人提供的信息)

Since iOS 10.0+ there is CallKit which includes a Call Blocking and Identification API: https://developer.apple.com/documentation/callkit

(Information for people which find this in 2020 or in the future)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文