【发布时间】:2014-01-23 12:14:27
【问题描述】:
在 iOS 7 上,CTSubscriber 被添加到 CoreTelephony 框架中。没有可用的文档,只有它的头文件:
/*
* CTSubscriberTokenRefreshed
*
* Description:
* The name of the NSNotification sent when the carrier token is available.
*/
CORETELEPHONY_EXTERN NSString * const CTSubscriberTokenRefreshed __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_CLASS_AVAILABLE(7_0)
@interface CTSubscriber : NSObject
/*
* carrierToken
*
* Description:
* A data blob containing authorization information about the subscriber.
*
* May return nil if no token is available.
*/
@property (nonatomic, readonly, retain) NSData* carrierToken __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
@end
另外,What's new on iOS 7 上也提到了这一点:
Core Telephony 框架 (
CoreTelephony.framework) 可让您获取有关设备使用的无线电技术类型的信息。 与运营商合作开发的应用还可以针对该运营商的特定订阅者进行身份验证。
我认为CTSubscriber 与文本的粗体部分有关。但是,我还没有找到任何与这种情况有关的信息。
我尝试使用以下代码(添加到application:didFinishLaunchingWithOptions:)来试验此 API,但从未触发通知并且carrierToken 返回nil:
CTSubscriber *subscriber = [CTSubscriberInfo subscriber];
NSLog(@"%@", subscriber.carrierToken);
[[NSNotificationCenter defaultCenter] addObserverForName:CTSubscriberTokenRefreshed object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
NSLog(@"==========");
NSLog(@"%@", note);
NSLog(@"%@", subscriber.carrierToken);
}];
所以,我有以下问题:
-
carrierToken返回的究竟是什么(“授权信息”)以及如何使它不是nil? - Apple 如何知道您的应用是否“与运营商合作开发”?
- 这就是 Evernote 向 Telefonica 用户 (http://blog.evernote.com/blog/2013/08/13/evernote-and-telefonica-announce-global-partnership/) 提供 1 年高级帐户的方式吗? (可能不会,因为他们需要的信息可以在
CTCarrier获得)
【问题讨论】:
-
这不能回答我的问题。只是说有些方法是私有的(我贴的是公开的),我贴的信息(文档和标题)也有。
标签: ios objective-c ios7 core-telephony