在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上,提到了这一点:
核心电话框架(
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
? CTCarrier
)答案 0 :(得分:4)
我在开发者论坛中问了同样的问题并得到了这个回复:
You should escalate this via the carrier you're working with, who can in turn escalate it to their contact at Apple.
答案 1 :(得分:-1)
您无法找到任何文档的原因是因为Core Telephony的大部分内容都包含私有API。因此,没有任何方法可以从App Store上发布的应用程序访问SIM卡。当然,越狱装置是另一个故事,但在这种情况下,你几乎就是自己。
编辑:
Core Telephony框架(CoreTelephony.framework)让您获得 有关设备使用的无线电技术类型的信息。 与运营商共同开发的应用也可以进行身份验证 针对该运营商的特定订户。