public static WTFeatures ConvertFeatures(Features featuresMask) { WTFeatures iOSFeatures = 0; if ((featuresMask & Features.Geo) == Features.Geo) { iOSFeatures |= WTFeatures.WTFeature_Geo; } if ((featuresMask & Features.ImageTracking) == Features.ImageTracking) { iOSFeatures |= WTFeatures.WTFeature_ImageTracking; } if ((featuresMask & Features.InstantTracking) == Features.InstantTracking) { iOSFeatures |= WTFeatures.WTFeature_InstantTracking; } if ((featuresMask & Features.ObjectTracking) == Features.ObjectTracking) { iOSFeatures |= WTFeatures.WTFeature_ObjectTracking; } if ((featuresMask & Features.PhotoLibraryScreenshotImport) == Features.PhotoLibraryScreenshotImport) { iOSFeatures |= WTFeatures.WTFeature_PhotoLibraryScreenshotImport; } return(iOSFeatures); }
private void getWikitudePermissions() { WTFeatures requiredFeatures = WTFeatures.Geo | WTFeatures.WTFeature_InstantTracking; ArExperienceAuthorizationController.AuthorizeRestricedAPIAccess(m_AuthorizationRequestManager, requiredFeatures, () => { autoConnect(); }, (UIAlertController alertController) => { Alert.Display("Permissions Denied", "You cannot proceed without granting permissions", this, (r) => Environment.Exit(0)); }); }
public override void RowSelected(UITableView tableView, NSIndexPath indexPath) { ArExperience selectedArExperience = arExperienceGroup.ArExperiences[indexPath.Row]; WTFeatures requiredFeatures = iOSArExperienceConverter.ConvertFeatures(selectedArExperience.FeaturesMask); ArExperienceAuthorizationController.AuthorizeRestricedAPIAccess(authorizationRequestManager, requiredFeatures, () => { ArExperienceViewController arExperienceViewController = new ArExperienceViewController(selectedArExperience); NavigationController.PushViewController(arExperienceViewController, true); }, (UIAlertController alertController) => { tableView.DeselectRow(indexPath, true); PresentViewController(alertController, true, null); }); }
public static void AuthorizeRestricedAPIAccess(WTAuthorizationRequestManager authorizationRequestManager, WTFeatures requiredFeatures, Action successHandler, Action <UIAlertController> errorHandler) { if (!authorizationRequestManager.RequestingRestrictedAppleiOSSDKAPIAuthorization) { NSOrderedSet <NSNumber> restrictedAppleiOSSDKAPIs = WTAuthorizationRequestManager .RestrictedAppleiOSSDKAPIAuthorizationsForRequiredFeatures(requiredFeatures); authorizationRequestManager.RequestRestrictedAppleiOSSDKAPIAuthorization(restrictedAppleiOSSDKAPIs, (bool success, NSError error) => { if (success) { successHandler(); } else { NSDictionary unauthorizedAPIInfo = (NSDictionary)error.UserInfo.ObjectForKey(WTAuthorizationRequestManager.WTUnauthorizedAppleiOSSDKAPIsKey); string detailedAuthorizationErrorLogMessage = "The following authorization states do not meet the requirements: "; string missingAuthorizations = "In order to use the Wikitude SDK, please grant access to the following:"; foreach (NSString unauthorizedAPIKey in unauthorizedAPIInfo.Keys) { int authorizationStatus = Int32.Parse(unauthorizedAPIInfo.ObjectForKey(unauthorizedAPIKey).ToString()); detailedAuthorizationErrorLogMessage += "\n" + unauthorizedAPIKey.ToString() + " = " + WTAuthorizationRequestManager.StringFromAuthorizationStatusForUnauthorizedAppleiOSSDKAPI(authorizationStatus, unauthorizedAPIKey); missingAuthorizations += "\n* " + WTAuthorizationRequestManager.HumanReadableDescriptionForUnauthorizedAppleiOSSDKAPI(unauthorizedAPIKey); } Console.WriteLine(detailedAuthorizationErrorLogMessage); UIAlertController settingsAlertController = UIAlertController.Create("Required API authorizations missing", missingAuthorizations, UIAlertControllerStyle.Alert); settingsAlertController.AddAction(UIAlertAction.Create("Open Settings", UIAlertActionStyle.Default, (UIAlertAction action) => { UIApplication.SharedApplication.OpenUrl(NSUrl.FromString(UIApplication.OpenSettingsUrlString)); })); settingsAlertController.AddAction(UIAlertAction.Create("NO", UIAlertActionStyle.Destructive, null)); errorHandler(settingsAlertController); } }); } }
public static WTFeatures ConvertFeatures(Features featuresMask) { WTFeatures iOSFeatures = 0; if ((featuresMask & Features.ImageTracking) == Features.ImageTracking) { iOSFeatures |= WTFeatures.WTFeature_ImageTracking; } if ((featuresMask & Features.ObjectTracking) == Features.ObjectTracking) { iOSFeatures |= WTFeatures.WTFeature_ObjectTracking; } if ((featuresMask & Features.InstantTracking) == Features.InstantTracking) { iOSFeatures |= WTFeatures.WTFeature_InstantTracking; } if ((featuresMask & Features.Geo) == Features.Geo) { iOSFeatures |= WTFeatures.WTFeature_Geo; } return(iOSFeatures); }