iOS开发

iOS判断是否有权限访问相册/相机

2019-08-15  本文已影响0人  JxSr程知农

### 一、判断是否有权限访问相册。

/**

 * @desc  判断是否为明确无效的访问权限 for 系统相册。

 */

+ (BOOL)explicitlyInvalidAccessAuthForPhoto} {

    /**

     *  PHAuthorizationStatusNotDetermined  (默认)用户还没做出选择。

     *  PHAuthorizationStatusRestricted  此应用程序没有被授权访问的照片数据。

     *  PHAuthorizationStatusDenied  用户已经明确否认了照片数据的应用程序访问。

     *  PHAuthorizationStatusAuthorized  用户已经授权应用访问照片数据。

     */

    PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];

    if (PHAuthorizationStatusRestricted == status

        ||PHAuthorizationStatusDenied == status)  {

        return YES;//无权限。可以弹出提示:请您先允许App访问照片。\n是否现在前往设置?

    }

    return NO;

}



### 二、判断是否有权限访问相机。

/**

 * @desc  判断是否为明确无效的访问权限 for 系统相机。

 */

+ (BOOL)explicitlyInvalidAccessAuthForCapture {

    /**

     *  AVAuthorizationStatusNotDetermined  (默认)用户还没做出选择。

     *  AVAuthorizationStatusRestricted  此应用程序没有被授权访问。

     *  AVAuthorizationStatusDenied  用户已经明确否认应用程序访问。

     *  AVAuthorizationStatusAuthorized  用户已经授权应用程序访问。

     */

    AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];

    if (AVAuthorizationStatusRestricted == authStatus

        ||AVAuthorizationStatusDenied == authStatus) {

        return YES;//无权限。可以弹出提示:请您先允许App访问相机。\n是否现在前往设置?

    }

    return NO;

}



三、打开App对应的系统设置界面。

/**

 * @desc  打开App对应的系统设置界面。

 *@param  msg 如:@"请您先允许App访问相机。\n是否现在前往设置?"

 */

+ (void)openAppSysSettingWithMsg:(NSString*)msg andBaseVC:(UIViewController*)vc {

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:msg preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *actionForCancel = [UIAlertAction actionWithTitle:@"否" style:UIAlertActionStyleCancel handler:NULL];

    [alertaddAction:actionForCancel];

    UIAlertAction *actionForOther = [UIAlertAction actionWithTitle:@"前往" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

    }];

    [alertaddAction:actionForOther];

    [vcpresentViewController:alert animated:YES completion:nil];

}
上一篇下一篇

猜你喜欢

热点阅读