Exemplo n.º 1
0
        private PermissionAuthorization ConvertToLocal(CMAuthorizationStatus authorizationStatus)
        {
            PermissionAuthorization permission = PermissionAuthorization.CheckNotAvailable;

            switch (authorizationStatus)
            {
            case CMAuthorizationStatus.Authorized:
                permission = PermissionAuthorization.Authorized;
                break;

            case CMAuthorizationStatus.Denied:
                permission = PermissionAuthorization.Denied;
                break;

            case CMAuthorizationStatus.NotDetermined:
                permission = PermissionAuthorization.NotDetermined;
                break;

            case CMAuthorizationStatus.Restricted:
                permission = PermissionAuthorization.Restricted;
                break;
            }

            return(permission);
        }
Exemplo n.º 2
0
        public bool RequestMotionPermission()
        {
            PermissionAuthorization status = CheckMotionPermission();

            if (status == PermissionAuthorization.NotDetermined)
            {
                // There is no RequestPermission for CMMotionActivityManager. So we'll just start and stop recording.

                _activityManager.QueryActivity(NSDate.Now, NSDate.Now, NSOperationQueue.MainQueue, (activities, error) => { });
            }
            else if (status == PermissionAuthorization.Denied || status == PermissionAuthorization.Restricted)
            {
                Device.OpenUri(new NSUrl("app-settings:"));
            }

            return(true);
        }
Exemplo n.º 3
0
        public PermissionAuthorization CheckMotionPermission()
        {
            PermissionAuthorization permission = PermissionAuthorization.CheckNotAvailable;

            // AuthorizationStatus onyl available > iOS 11. Check
            if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
            {
                CMAuthorizationStatus status = CMMotionActivityManager.AuthorizationStatus;
                permission = ConvertToLocal(status);
            }
            else
            {
                permission = PermissionAuthorization.CheckNotAvailable;
            }


            return(permission);
        }