ios - 我的应用程序默认有摄像头访问权限。我如何关闭它并请求权限?

标签 ios objective-c ios8 camera user-permissions

我在我的应用程序中使用相机,我想请求所有其他应用程序提示的流行许可。我怎样才能得到它?

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if(authStatus == AVAuthorizationStatusAuthorized) {
    // do your logic
    authorized = YES;
     [self actionLaunchAppCamera];

} else if(authStatus == AVAuthorizationStatusDenied){
    // denied
    authorized = NO;

} else if(authStatus == AVAuthorizationStatusRestricted){
    // restricted, normally won't happen
} else if(authStatus == AVAuthorizationStatusNotDetermined){
    // not determined?!
    [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
        if(granted){
            NSLog(@"Granted access to %@", AVMediaTypeVideo);



        } else {
            NSLog(@"Not granted access to %@", AVMediaTypeVideo);
        }
    }];
} else {
    // impossible, unknown authorization status
}

我正在使用上面的代码来检查授权,但它总是进入 authorizedstatus 条件,因为它已经具有权限。我已经从隐私设置中检查了权限是否已经开启。但我从来没有征求过用户的许可。

谢谢大家

最佳答案

编辑:哦,我明白你的意思了。然后你需要创建 AVCaptureDeviceInput 来查看之前是否请求过权限。如果没有,这将提示用户获得许可。

NSError outError = NULL;
AVCaptureDevice captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
If (captureDevice != NULL) {
AVCaptureDeviceInput captureInput = [AVCaptureDeviceInput deviceInputfromDevice:captureDevice error:outError];
    If (captureInput != NULL && outError == NULL) {
        // we have permission to use the camera
    }
}

您无需卸载应用程序即可重置访问权限。假设您的设备运行的是 iOS 8,只需转到相机设置屏幕并禁用访问:

  1. 退出应用
  2. 转到设置 -> 隐私 -> 相机
  3. 寻找您的应用以关闭开关
  4. 运行应用

关于ios - 我的应用程序默认有摄像头访问权限。我如何关闭它并请求权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30725594/

相关文章:

objective-c - 假设有互联网连接,如何检查我的 OS X 应用程序是否可以连接到特定服务器?

objective-c - 我在我的应用程序中使用 NSJSONSerialization,这个应用程序可以在 IOS 3.x 下正常运行吗?

html - iOS 8 网络应用程序的启动图像

ios - 如何为 iPhone 6 和 6 Plus 上的应用启用原生分辨率?

cocoa-touch - 哪个事件处理对象成为/失去第一响应者状态?

ios - 在不使用 GLKIT 的情况下创建(从头开始)iOS 7.0 OpenGL ES 2.0 应用程序时出现问题

ios - 除了模态视图 Controller 之外的所有 View Controller 中的纵向方向

ios - 验证到应用程序商店。无效的代码签名权利。云端

iphone - 使用restkit发送HTTPBody数据

uitableview - 删除表格中单元格的最后一个分隔符