【发布时间】:2013-03-10 13:34:58
【问题描述】:
我想在 iOS 6 中实现“请勿打扰”功能。
第一个问题:有没有暴露任何框架或api苹果通过代码控制它们?
经过大量谷歌搜索后,我在应用商店“Call Bliss”上找到了一个应用程序,该应用程序提供此功能并完全控制通话、短信和彩信。 谁能解释这个应用程序是如何工作的? 要么 在 iOS 中学习和实现此功能的任何其他工作?
提前谢谢...
【问题讨论】:
标签: iphone ios objective-c ios6
我想在 iOS 6 中实现“请勿打扰”功能。
第一个问题:有没有暴露任何框架或api苹果通过代码控制它们?
经过大量谷歌搜索后,我在应用商店“Call Bliss”上找到了一个应用程序,该应用程序提供此功能并完全控制通话、短信和彩信。 谁能解释这个应用程序是如何工作的? 要么 在 iOS 中学习和实现此功能的任何其他工作?
提前谢谢...
【问题讨论】:
标签: iphone ios objective-c ios6
通过阅读 Call Bliss 的描述,实际上它的工作原理听起来很简单。
1) 请勿打扰必须始终启用。不是预定的,不是关闭的,而是一直开启的。
2) 它要求您将“免打扰”例外的联系人组设置为“Bliss 例外”。这意味着该应用程序需要访问您的通讯录。
从那里,假设它根据您在应用程序中设置的任何参数管理“Bliss Exceptions”联系人组中的联系人可能是明智的。它根据所述参数添加和删除该组中的人员。
所以要回答你的问题,不,没有框架可以做到这一点。他们这样做的方式可能是目前唯一没有用于管理请勿打扰状态的公共 API 的方式。
【讨论】:
没有公共 API 甚至可以访问请勿打扰功能。
我认为这就是应用程序的作用:
应用创建和管理自己的联系人列表(称为 Bliss 例外)
用户必须在请勿打扰首选项中选择它。
该应用程序可以在后台运行,因为它使用位置跟踪(可能仅对节省电池寿命很重要),因此当用户更改位置时,它可以更新例外列表。
当接到电话时,请勿打扰系统功能会检查 Bliss 例外列表并将来自列表中联系人的所有电话静音。
请注意,评论者抱怨缺乏基于时间的呼叫阻止。这是不可能的,因为应用程序只能在位置更改时执行代码。
【讨论】:
据我所知,没有办法通过代码来实现它。没有提供用于限制调用的公共 api。
但是有一个用于检测调用的 API:CTCallCenter 和一个名为 CoreTelephonyFramework 的框架
【讨论】: