コード例 #1
0
        protected RecordingServiceCapabilities GetRecordingServiceCapabilities()
        {
            RecordingServiceCapabilities response = null;

            RunStep(() => { response = RecordingClient.GetServiceCapabilities(); }, "Get Recording service capabilities");
            DoRequestDelay();
            return(response);
        }
コード例 #2
0
        protected GetRecordingsResponseItem[] GetRecordings()
        {
            RecordingPortClient client = RecordingClient;

            GetRecordingsResponseItem[] response = null;
            RunStep(() => { response = RecordingClient.GetRecordings(); }, "Get Recordings");
            DoRequestDelay();
            return(response);
        }
コード例 #3
0
        public void CreateGoogleFitClient()
        {
            if (_activity == null || isWaitingForConnectivity)
            {
                return;
            }

            if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Q)
            {
                if (!_activity.HasActivityRecognition)
                {
                    _activity.ActivityRecognitionPermissionUpdated += OnActivityRecognitionPermissionUpdated;
                    isWaitingForConnectivity = true;
                    _activity.RequestActivityRecognition();
                    return;
                }
            }

            if (!_activity.HasAccessFineLocation)
            {
                _activity.AccessFineLocationPermissionUpdated += OnAccessFineLocationPermissionUpdated;
                isWaitingForConnectivity = true;
                _activity.RequestAccessFineLocation();
                return;
            }



            if (!_activity.HasGoogleFitnessPermissions)
            {
                _activity.GoogleFitnessPermissionsUpdated += OnFitnessPermissionsUpdated;
                isWaitingForConnectivity = true;
                _activity.RequestFitnessPermissions();
                return;
            }

            GoogleSignInAccount googleAccount = GoogleSignIn.GetLastSignedInAccount(_activity);

            fitnessHistoryClient   = FitnessClass.GetHistoryClient(_activity, googleAccount);
            fitnessRecordingClient = FitnessClass.GetRecordingClient(_activity, googleAccount);

            if (checkSubscriptionsTask == null)
            {
                checkSubscriptionsTask = Task.Run(
                    async() =>
                {
                    bool hasSubscribedToSpeedData = await SubscribeToSpeedData();
                    if (hasSubscribedToSpeedData)
                    {
                        _isConnected = true;
                    }
                });
            }


            //create FitnessApi client, needs an activity
            //_client = new GoogleApiClient.Builder(_activity)
            //    .AddApi(FitnessClass.RECORDING_API)
            //    .AddApi(FitnessClass.HISTORY_API)
            //    .AddScope(FitnessClass.ScopeLocationReadWrite)
            //    .AddScope(FitnessClass.ScopeActivityReadWrite)
            //    .AddConnectionCallbacks(
            //        async bundle =>
            //        {

            //            if (Mvx.IoCProvider != null)
            //            {
            //                Mvx.IoCProvider.Resolve<IMissingPermissionService>().ResolvedMissingPermission(MissingPermission.AndroidFitnessAccountLink);
            //            }

            //            var isSubscribed = await SubscribeToSpeedData();
            //            if (!isSubscribed)
            //            {
            //                Analytics.TrackEvent(TrackingEvents.Error, new TrackingEvents.ErrorArgs(TrackingEvents.ErrorData.SpeedDataSubscriptionFailed));
            //            }

            //            _isConnected = true;
            //            CrossLocalNotifications.Current.Cancel(Config.NotificationIdConnectivity);
            //            OnConnected();

            //            await RequestUpdate();
            //        },
            //        suspensionReason =>
            //        {
            //            if (suspensionReason == GoogleApiClient.ConnectionCallbacks.CauseNetworkLost)
            //            {
            //                Crashes.TrackError(new Exception("Connection to Google Fitness lost due to Network Lost"));
            //            }
            //            else if (suspensionReason == GoogleApiClient.ConnectionCallbacks.CauseServiceDisconnected)
            //            {
            //                Crashes.TrackError(new Exception("Connection to Google Fitness lost due to Service Disconnected"));
            //            }
            //            else
            //            {
            //                Crashes.TrackError(new Exception("Connection to Google Fitness lost: " + suspensionReason));
            //            }
            //        })
            //    .AddOnConnectionFailedListener(
            //         async result =>
            //         {
            //             _isConnected = false;

            //             if (UpdateService.Current.GetUpdateMode() == UpdateMode.Foreground && !isWaitingForConnectivity)
            //             {
            //                 lastConnectionResult = result;
            //                 bool canReachGoogle = await CrossConnectivity.Current.IsRemoteReachable("http://www.google.com", 80, 1000);

            //                 if (!canReachGoogle)
            //                 {
            //                     bool hasCellular = CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.Cellular);
            //                     bool hasWifi = CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.WiFi);

            //                     CrossConnectivity.Current.ConnectivityTypeChanged += ConnectivityTypeChanged;
            //                     isWaitingForConnectivity = true;

            //                     await UserDialogs.Instance.AlertAsync(
            //                         "Du må ha en internett-forbindelse for å kunne hente ut dine gangdata fra Google Fit",
            //                         "Trenger nettforbindelse");

            //                     if (!hasWifi)
            //                     {
            //                         var intent = new Intent(Android.Provider.Settings.ActionWifiSettings);
            //                         intent.SetFlags(ActivityFlags.NewTask);
            //                         _activity.StartActivity(intent);
            //                     }
            //                     else if (!hasCellular)
            //                     {
            //                         var intent = new Intent(Android.Provider.Settings.ActionDataUsageSettings);
            //                         intent.SetFlags(ActivityFlags.NewTask);
            //                         _activity.StartActivity(intent);
            //                     }
            //                 }
            //                 else
            //                 {
            //                     _activity.GoogleFitnessAuthenticationUpdated -= OnGoogleFitnessAuthenticationUpdated;
            //                     _activity.GoogleFitnessAuthenticationUpdated += OnGoogleFitnessAuthenticationUpdated;
            //                     _activity.RequestGoogleFitnessAuthentication(lastConnectionResult);
            //                 }
            //             }
            //             else
            //             {
            //                 CrossLocalNotifications.Current.Show(AppText.notification_title, AppText.notification_google_fit_auth_failed, Config.NotificationIdConnectivity);
            //             }
            //         })
            //    .Build();

            //ConnectGoogleFitClient();
        }