设备方向
设备方向和 UIDeviceOrientation 类似。
typedef NS_ENUM(int, CLDeviceOrientation) {
CLDeviceOrientationUnknown = 0,
CLDeviceOrientationPortrait,
CLDeviceOrientationPortraitUpsideDown,
CLDeviceOrientationLandscapeLeft,
CLDeviceOrientationLandscapeRight,
CLDeviceOrientationFaceUp,
CLDeviceOrientationFaceDown
};
定位服务的授权操作
// 代表应用程序的当前授权状态
typedef NS_ENUM(int, CLAuthorizationStatus) {
// 用户还没做出选择(状态是不确定)是否启动定位
kCLAuthorizationStatusNotDetermined = 0,
// 定位服务授权状态是受限制的。可能是由于活动限制定位服务,用户不能改变。
// 这个状态可能不是用户拒绝的定位服务。
kCLAuthorizationStatusRestricted,
// 用户已经明确拒绝授权对于这个应用程序使用定位服务(用户在设置,隐私中关闭了用户的定位服务)
kCLAuthorizationStatusDenied,
// 在你没有使用应用的时候启用定位服务(总是授权,支持后台定位)
kCLAuthorizationStatusAuthorizedAlways NS_ENUM_AVAILABLE(10_12, 8_0),
// 在你使用应用的时候启用定位服务 (只有在使用 app 的是支持定位,支持前台定位)
kCLAuthorizationStatusAuthorizedWhenInUse NS_ENUM_AVAILABLE(NA, 8_0),
// (废弃)
kCLAuthorizationStatusAuthorized NS_ENUM_DEPRECATED(10_6, NA, 2_0, 8_0, "Use kCLAuthorizationStatusAuthorizedAlways") __TVOS_PROHIBITED __WATCHOS_PROHIBITED = kCLAuthorizationStatusAuthorizedAlways
};
kCLAuthorizationStatusAuthorizedAlways 的授权状态是包含 kCLAuthorizationStatusAuthorizedWhenInUse
请求授权
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
默认的状态是: kCLAuthorizationStatusNotDetermined
// 确定定位服务是否可用
+ (BOOL)locationServicesEnabled;
+ (BOOL)headingAvailable;
+ (BOOL)significantLocationChangeMonitoringAvailable;
+ (BOOL)isMonitoringAvailableForClass:(Class)regionClass;
+ (BOOL)regionMonitoringAvailable;
+ (BOOL)regionMonitoringEnabled;
+ (BOOL)isRangingAvailable;
// 获取当前的定位服务授权状态
+ (CLAuthorizationStatus)authorizationStatus;