CoreTelephony 框架 iOS 7 [英] CoreTelephony Framework iOS 7
问题描述
iOS 7 中的 CoreTelephony 框架是否有任何更改?!我在这里找到了新的头文件:
https://github.com/EthanArbuckle/IOS-7-Headers/tree/master/Frameworks/CoreTelephony.framework
那么,这是否意味着现在允许使用这些方法?!或者他们仍然是私人的?!
关于 Apple Dev 的最新可用文档是 2010 年 3 月 15 日,涵盖 iOS 4.0,包括以下类:
- CTCall
- CTCallCenter
- CTCarrier
- CTTelephonyNetwork
iOS 7 更新的唯一可用文档包括 Kogus 发布的内容以及一行说对于更新,请查看头文件".当您在 XCode 中打开框架时,以下类在 iOS 7 中可用:
- CTCall
- CTCallCenter
- CTCarrier
- CTSubscriber
- CTSubscriberInfo
- CTTelephonyNetwork
根据 iOS 7 关于无线电技术的说明,看起来最相关的变化是在 CTTelephonyNetwork
类中,增加了 currentRadioAccessTechnology
属性.>
看起来实际上还有很多可用的,只是基于 github 链接.但我敢打赌,这些大多是私有 API.我认为最安全的方法是坚持使用 Xcode 中可用的公共标头.为此,iOS 7 中添加的相关位将是(删除了 iOS 7 之前的代码):
/** CTSubscriberTokenRefreshed** 描述:* 当运营商令牌可用时发送的 NSNotification 的名称.*/CORETELEPHONY_EXTERN NSString * const CTSubscriberTokenRefreshed __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_CLASS_AVAILABLE(7_0)@interface CTSubscriber : NSObject/** 运营商令牌** 描述:* 一个包含订阅者授权信息的数据块.** 如果没有可用的令牌,可能会返回 nil.*/@property(非原子,只读,保留)NSData*carrierToken __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
还有……
/** CTTelephonyNetworkInfo.h* 核心电话** 版权所有 2009 Apple, Inc.保留所有权利.**/#import <Foundation/Foundation.h>#import /** CTRadioAccessTechnologyDataTechnologyDidChangeNotification** 描述:* 无线电接入技术改变时的 NSNotification 广播*/CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyDidChangeNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);/** 无线电接入技术值*/CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyGPRS __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyEdge __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyWCDMA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyHSDPA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyHSUPA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMA1x __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORev0 __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORevA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORevB __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyeHRPD __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyLTE __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);/** 当前的无线电接入技术** 讨论:* 设备注册的当前无线电接入技术.可能为 NULL* 如果设备未在任何网络上注册.*/@property(非原子,只读,保留)NSString* currentRadioAccessTechnology __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);@结尾
希望有所帮助.
Are there any Changes which will allow more in the CoreTelephony Framework in iOS 7?! I found the new Headerfiles here:
https://github.com/EthanArbuckle/IOS-7-Headers/tree/master/Frameworks/CoreTelephony.framework
So, does that mean that it is now allowed to use those methods?! Or are they still private?!
The last available documentation on Apple Dev is from March 15, 2010, covers iOS 4.0, and includes the following classes:
- CTCall
- CTCallCenter
- CTCarrier
- CTTelephonyNetwork
The only available documentation for iOS 7 updates include what Kogus posted as well as a single line that says "for updates, look at the header files". When you open up the framework in XCode, the following classes are available in iOS 7:
- CTCall
- CTCallCenter
- CTCarrier
- CTSubscriber
- CTSubscriberInfo
- CTTelephonyNetwork
Based on the iOS 7 note about radio technology, it looks like the most pertinent change is within the CTTelephonyNetwork
class, with the addition of the currentRadioAccessTechnology
property.
It looks like there is actually a LOT more available, just based on the github link. But I'm willing to bet that those are mostly private APIs. I think the safest approach would be to stick to public headers available in Xcode. To that end, the pertinent bits added in iOS 7 would be (with pre iOS 7 code removed):
/*
* 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);
And...
/*
* CTTelephonyNetworkInfo.h
* CoreTelephony
*
* Copyright 2009 Apple, Inc. All rights reserved.
*
*/
#import <Foundation/Foundation.h>
#import <CoreTelephony/CoreTelephonyDefines.h>
/*
* CTRadioAccessTechnologyDataTechnologyDidChangeNotification
*
* Description:
* A NSNotification broadcast when radio access technology changes
*/
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyDidChangeNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
/*
* Radio Access Technology values
*/
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyGPRS __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyEdge __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyWCDMA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyHSDPA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyHSUPA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMA1x __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORev0 __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORevA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORevB __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyeHRPD __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyLTE __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
/*
* currentRadioAccessTechnology
*
* Discussion:
* The current radio access technology the device is registered with. May be NULL
* if device is not registered on any network.
*/
@property (nonatomic, readonly, retain) NSString* currentRadioAccessTechnology __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
@end
Hope that helps.
这篇关于CoreTelephony 框架 iOS 7的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!