首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CTTelephonyCenterAddObserver不通知接收短信

CTTelephonyCenterAddObserver不通知接收短信
EN

Stack Overflow用户
提问于 2014-11-14 15:04:55
回答 2查看 2K关注 0票数 6

我有一个应用程序,当收到短信时,我想做出反应;直到iOS 7为止,这是通过向CTTelephonyCenter注册这样的程序来实现的:

代码语言:javascript
复制
        id center = CTTelephonyCenterGetDefault();
        CTTelephonyCenterAddObserver(center,
                                     NULL,
                                     callback,
                                     NULL,
                                     NULL,
                                     CFNotificationSuspensionBehaviorHold);

以及在kCTMessageReceivedNotification的回调检查中。这在iOS 8中不再适用,因为我收到的通知类型比iOS 7少得多,而且没有一个与消息接收相关。我认为这是一个新的权利,但还无法计算如果是,以及需要什么权利。有人知道怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-22 00:47:46

您需要在第四个参数中指定通知名:

代码语言:javascript
复制
id center = CTTelephonyCenterGetDefault();
CTTelephonyCenterAddObserver(center,
                             NULL,
                             callback,
                             CFSTR("kCTMessageReceivedNotification"),
                             NULL,
                             CFNotificationSuspensionBehaviorHold);

从iOS 8开始,不能将NULL作为通知名来接收所有CoreTelephony通知。现在,您必须确切地告诉它要观察哪些通知。

8.3更新

在iOS 8.3中,至少kCTMessageReceivedNotification要求接收权限(可能是所有通知的情况,但不确定)

代码语言:javascript
复制
<key>com.apple.CommCenter.fine-grained</key>
<array>
    <string>spi</string>
</array>
票数 6
EN

Stack Overflow用户

发布于 2015-04-20 16:29:46

从iOS 8.3开始,CTTelephonyCenterAddObserver就不再工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26932913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档