Xamarin
AVAuthorizationStatus authStatus = AVCaptureDevice.GetAuthorizationStatus(AVAuthorizationMediaType.Video);
if (authStatus == AVAuthorizationStatus.Authorized)
{
// Show camera
...
}
else if (authStatus == AVAuthorizationStatus.NotDetermined)
{
Debug.WriteLine("Camera access not determined. Ask for permission.");
AVCaptureDevice.RequestAccessForMediaType(AVAuthorizationMediaType.Video, (granted) =>
{
if (granted)
{
// Show camera
...
}
else
{
camDenied();
}
});
}
else if (authStatus == AVAuthorizationStatus.Restricted)
{
// This device doesn't have the camera feature
}
else
{
// Denied
camDenied();
}
void camDenied()
{
UIAlertController alert = UIAlertController.Create("Warning", "It looks like your privacy settings are preventing us from accessing your camera. You can fix this by doing the following...", UIAlertControllerStyle.Alert);
UIAlertAction goAction = UIAlertAction.Create("Go", UIAlertActionStyle.Default, (action) =>
{
// Open Settings
UIApplication.SharedApplication.OpenUrl(new NSUrl(UIApplication.OpenSettingsUrlString));
});
alert.AddAction(goAction);
PresentViewController(alert, true, null);
}
AVAuthorizationStatus authStatus = AVCaptureDevice.GetAuthorizationStatus(AVAuthorizationMediaType.Video);
if (authStatus == AVAuthorizationStatus.Authorized)
{
// Show camera
...
}
else if (authStatus == AVAuthorizationStatus.NotDetermined)
{
Debug.WriteLine("Camera access not determined. Ask for permission.");
AVCaptureDevice.RequestAccessForMediaType(AVAuthorizationMediaType.Video, (granted) =>
{
if (granted)
{
// Show camera
...
}
else
{
camDenied();
}
});
}
else if (authStatus == AVAuthorizationStatus.Restricted)
{
// This device doesn't have the camera feature
}
else
{
// Denied
camDenied();
}
void camDenied()
{
UIAlertController alert = UIAlertController.Create("Warning", "It looks like your privacy settings are preventing us from accessing your camera. You can fix this by doing the following...", UIAlertControllerStyle.Alert);
UIAlertAction goAction = UIAlertAction.Create("Go", UIAlertActionStyle.Default, (action) =>
{
// Open Settings
UIApplication.SharedApplication.OpenUrl(new NSUrl(UIApplication.OpenSettingsUrlString));
});
alert.AddAction(goAction);
PresentViewController(alert, true, null);
}
AVAuthorizationStatus authStatus = AVCaptureDevice.GetAuthorizationStatus(AVAuthorizationMediaType.Video); if (authStatus == AVAuthorizationStatus.Authorized) { // Show camera ... } else if (authStatus == AVAuthorizationStatus.NotDetermined) { Debug.WriteLine("Camera access not determined. Ask for permission."); AVCaptureDevice.RequestAccessForMediaType(AVAuthorizationMediaType.Video, (granted) => { if (granted) { // Show camera ... } else { camDenied(); } }); } else if (authStatus == AVAuthorizationStatus.Restricted) { // This device doesn't have the camera feature } else { // Denied camDenied(); } void camDenied() { UIAlertController alert = UIAlertController.Create("Warning", "It looks like your privacy settings are preventing us from accessing your camera. You can fix this by doing the following...", UIAlertControllerStyle.Alert); UIAlertAction goAction = UIAlertAction.Create("Go", UIAlertActionStyle.Default, (action) => { // Open Settings UIApplication.SharedApplication.OpenUrl(new NSUrl(UIApplication.OpenSettingsUrlString)); }); alert.AddAction(goAction); PresentViewController(alert, true, null); }
Leave a Reply