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

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

12.iOS开发检测是否开启Apple Pay:

需要导入:


#import <PassKit/PassKit.h> 


#pragma mark - 开启Apple Pay服务 
+ (void)openApplePayServiceWithBlock:(ReturnBlock)returnBlock 
{ 
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0 
  NSArray<PKPaymentNetwork> *supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa, PKPaymentNetworkDiscover]; 
  if ([PKPaymentAuthorizationViewController canMakePayments] && [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:supportedNetworks]) { 
    if (returnBlock) { 
      returnBlock(YES); 
    } 
  } else { 
    if (returnBlock) { 
      returnBlock(NO); 
    } 
  } 
#endif 
} 

13.iOS开发检测是否开启语音识别:

需要导入:


#import <Speech/Speech.h> 


#pragma mark - 开启语音识别服务
+ (void)openSpeechServiceWithBlock:(ReturnBlock)returnBlock
{
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
 SFSpeechRecognizerAuthorizationStatus speechAuthStatus = [SFSpeechRecognizer authorizationStatus];
 if (speechAuthStatus == SFSpeechRecognizerAuthorizationStatusNotDetermined) {
  [SFSpeechRecognizer requestAuthorization:^(SFSpeechRecognizerAuthorizationStatus status) {
   if (status == SFSpeechRecognizerAuthorizationStatusAuthorized) {
    dispatch_async(dispatch_get_main_queue(), ^{
     if (returnBlock) {
      returnBlock(YES);
     }
    });
   } else {
    dispatch_async(dispatch_get_main_queue(), ^{
     if (returnBlock) {
      returnBlock(YES);
     }
    });
   }
  }];
 } else if (speechAuthStatus == SFSpeechRecognizerAuthorizationStatusAuthorized) {
  if (returnBlock) {
   returnBlock(YES);
  }
 } else{
  if (returnBlock) {
   returnBlock(NO);
  }
 }
#endif
}

14.iOS开发检测是否开启媒体资料库/Apple Music:

需要导入:


#import <MediaPlayer/MediaPlayer.h> 


#pragma mark - 开启媒体资料库/Apple Music 服务
+ (void)openMediaPlayerServiceWithBlock:(ReturnBlock)returnBlock
{
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_3
 MPMediaLibraryAuthorizationStatus authStatus = [MPMediaLibrary authorizationStatus];
 if (authStatus == MPMediaLibraryAuthorizationStatusNotDetermined) {
  [MPMediaLibrary requestAuthorization:^(MPMediaLibraryAuthorizationStatus status) {
   if (status == MPMediaLibraryAuthorizationStatusAuthorized) {
    dispatch_async(dispatch_get_main_queue(), ^{
     if (returnBlock) {
      returnBlock(YES);
     }
    });
   }else{
    dispatch_async(dispatch_get_main_queue(), ^{
     if (returnBlock) {
      returnBlock(NO);
     }
    });
   }
  }];
 }else if (authStatus == MPMediaLibraryAuthorizationStatusAuthorized){
  if (returnBlock) {
   returnBlock(YES);
  }
 }else{
  if (returnBlock) {
   returnBlock(NO);
  }
 }
#endif
}