在Xamarin中阅读iOS的相机权限

时间:2015-07-02 07:02:26

标签: ios xamarin xamarin.ios ios-camera

我有一个在Xamarin中开发的iOS应用程序。当应用程序无权访问麦克风时,如果用户尝试从应用程序访问麦克风,我会使用AVAudioSession.SharedInstance().RequestRecordPermission (delegate(bool granted))检查设置并显示消息。

如果应用程序无权访问摄像头,我现在需要这样做。我需要检查是否为相机授予了权限并相应地显示消息。我怎么能这样做?

2 个答案:

答案 0 :(得分:5)

我得到了答案。这就是我所做的:

AVCaptureDevice.RequestAccessForMediaType (AVMediaType.Video, (bool isAccessGranted) => {                    
   //if has access              
   if(isAccessGranted)
   {
      //do something
   }
   //if has no access
   else
   {
      //show an alert
   }
});

答案 1 :(得分:2)

你看过这个答案吗? Detect permission of camera in iOS 我认为这是您正在寻找的解决方案:)。

编辑: 以下是移植到C#

的最高投票答案代码
// replace the media type to whatever you want
AVAuthorizationStatus authStatus = AVCaptureDevice.GetAuthorizationStatus(AVMediaType.Video);
switch (authStatus)
{
    case AVAuthorizationStatus.NotDetermined:
        break;
    case AVAuthorizationStatus.Restricted:
        break;
    case AVAuthorizationStatus.Denied:
        break;
    case AVAuthorizationStatus.Authorized:
        break;
    default:
        throw new ArgumentOutOfRangeException();
}