iOS开发检测是否开启定位、是否允许消息推送等权限的实例

2020-01-21 04:03:54于海丽

7.iOS开发检测是否开启蓝牙:

需要导入:


#import <CoreBluetooth/CoreBluetooth.h> 


+ (void)openPeripheralServiceWithBolck:(ReturnBlock)returnBolck 
{ 
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0 
  CBPeripheralManagerAuthorizationStatus cbAuthStatus = [CBPeripheralManager authorizationStatus]; 
  if (cbAuthStatus == CBPeripheralManagerAuthorizationStatusNotDetermined) { 
    if (returnBolck) { 
      returnBolck(NO); 
    } 
  } else if (cbAuthStatus == CBPeripheralManagerAuthorizationStatusRestricted || cbAuthStatus == CBPeripheralManagerAuthorizationStatusDenied) { 
    if (returnBolck) { 
      returnBolck(NO); 
    } 
  } else { 
    if (returnBolck) { 
      returnBolck(YES); 
    } 
  } 
#endif 
} 

8.iOS开发检测是否开启日历/备忘录:

需要导入:


#import <EventKit/EventKit.h> 


+ (void)openEventServiceWithBolck:(ReturnBlock)returnBolck withType:(EKEntityType)entityType 
{ 
  // EKEntityTypeEvent  代表日历 
  // EKEntityTypeReminder 代表备忘 
  EKAuthorizationStatus ekAuthStatus = [EKEventStore authorizationStatusForEntityType:entityType]; 
  if (ekAuthStatus == EKAuthorizationStatusNotDetermined) { 
    EKEventStore *store = [[EKEventStore alloc] init]; 
    [store requestAccessToEntityType:entityType completion:^(BOOL granted, NSError *error) { 
      if (returnBolck) { 
        returnBolck(granted); 
      } 
    }]; 
  } else if (ekAuthStatus == EKAuthorizationStatusRestricted || ekAuthStatus == EKAuthorizationStatusDenied) { 
    if (returnBolck) { 
      returnBolck(NO); 
    } 
  } else { 
    if (returnBolck) { 
      returnBolck(YES); 
    } 
  } 
} 

9.iOS开发检测是否开启联网:

需要导入:


#import <CoreTelephony/CTCellularData.h> 


+ (void)openEventServiceWithBolck:(ReturnBlock)returnBolck 
{ 
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0 
  CTCellularData *cellularData = [[CTCellularData alloc] init]; 
  cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState state){ 
    if (state == kCTCellularDataRestrictedStateUnknown || state == kCTCellularDataNotRestricted) { 
      if (returnBolck) { 
        returnBolck(NO); 
      } 
    } else { 
      if (returnBolck) { 
        returnBolck(YES); 
      } 
    } 
  }; 
  CTCellularDataRestrictedState state = cellularData.restrictedState; 
  if (state == kCTCellularDataRestrictedStateUnknown || state == kCTCellularDataNotRestricted) { 
    if (returnBolck) { 
      returnBolck(NO); 
    } 
  } else { 
    if (returnBolck) { 
      returnBolck(YES); 
    } 
  } 
#endif 
} 

10.iOS开发检测是否开启健康:

需要导入:


#import <HealthKit/HealthKit.h>