【发布时间】:2010-10-27 10:11:22
【问题描述】:
是否可以编写一个阻止来电和去电的应用程序?还是 iPhone 锁定太多?谢谢!
【问题讨论】:
-
这在 iOS 10 中肯定是可能的,正如应用程序 Whatsapp 所做的那样,主要是通过 callKit。
标签: iphone objective-c xcode
是否可以编写一个阻止来电和去电的应用程序?还是 iPhone 锁定太多?谢谢!
【问题讨论】:
标签: iphone objective-c xcode
编辑:请参阅下面的 Rajan Maheshwari 的回答。 CallKit 现在提供了这个。即使看起来永远不会改变的事情,最终也会改变。
任何改变用户拨打或接听电话能力的行为都将违反 Apple 对第三方应用程序的基本方法。有很多事情是有问题的,你可能会侥幸逃脱。屏蔽电话是明确禁止的。
【讨论】:
现在可以检测和阻止来自 iOS 10 及更高版本的不需要的电话。
查看CallKit 框架
CallKit 框架 (CallKit.framework) 让 VoIP 应用程序与 iPhone UI 集成并为用户提供出色的体验。使用此框架可让用户在锁定屏幕上查看和接听 VoIP 来电,并在“电话”应用的“收藏夹”和“最近”视图中管理来自 VoIP 呼叫的联系人。
CallKit 还引入了支持呼叫阻止和来电识别的应用扩展。您可以创建一个应用扩展程序,将电话号码与姓名相关联,或者告诉系统何时应该阻止某个号码。
【讨论】:
许多事件可能会中断应用程序 - 来电、短信或日历提醒。如果用户忽略中断,您的应用程序将继续运行。如果没有,它将终止。
更多详情请见Apple docs。
【讨论】:
在 iOS 10 中是可能的。
这是怎么做的->
2.屏蔽来电 ->
class CustomCallDirectoryProvider: CXCallDirectoryProvider {
override func beginRequest(with context: CXCallDirectoryExtensionContext) {
let blockedPhoneNumbers: [CXCallDirectoryPhoneNumber] = [ phone Numbers here with country code! ]
for phoneNumber in blockedPhoneNumbers.sorted(by: <) {
context.addBlockingEntry(withNextSequentialPhoneNumber: phoneNumber)
}
context.completeRequest()
}
}
注意: 如果您使用 callKit 接听来电,则无需手动阻止其他来电。
【讨论】:
应用无法使用电话功能,也无法阻止来电。
另一种选择是等待 Apple 将来提供该功能。
在此期间,您可以
【讨论】: