设备方向

设备方向和 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;

results matching ""

    No results matching ""