Использование Google-Fit API в IntentService - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь разработать пример приложения, которое может считывать данные о подгонке даже в фоновом режиме. С точки зрения пользователя: 1. Запустите приложение. 2. Запустите отслеживание подгоночных данных (время начала). На экране данные обновления должны обновляться каждые 1 мин. 3. Закройте приложение или переместите его в фоновом режиме. 4. Через некоторое время перезапустите приложение и остановите отслеживание (время окончания)

. Для фоновой активности я хочувыберите IntentService src

Здесь я хочу, чтобы history клиент был инициализирован. И план состоит в том, что каждые 1 минуту я буду читать исторические данные и передавать их действию, используя механизм приемника вещания

. Для правильной реализации я имел в виду этот образец, предоставленный Google. Здесь они инициализировали все в основном действии. Кажется, что работает так, как это указано (по крайней мере, нет проблем с компиляцией). Но когда я делаю аналогичный метод onHandle службы, я получаю ошибку компиляции. Вот пример, который выдает ошибку

    FitnessOptions fitnessOptions =
                    FitnessOptions.builder()
                            .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_WRITE)
                            .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_WRITE)
                            .build();
            if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) {
                GoogleSignIn.requestPermissions( this, REQUEST_OAUTH_REQUEST_CODE,  GoogleSignIn.getLastSignedInAccount(this),  fitnessOptions); 
// Here is the error that "Cannot resolve method requestPermission(< servicename >, int, GoogleSignInAccount, FitnessOptions)
            }

Та же ошибка не появляется, когда тот же код находится в основных сигнатурах активацииМетод requestPermission здесь

Все 4 варианта метода как Activity или Fragment в качестве первого параметра. У меня такое ощущение, что это вызывает проблему

Кроме того, я попытался заменить this на ServiceName.this, но безуспешно

Не уверен, где я ошибаюсь. Если я не могу передать это (контекст) методам Google Fit в Intent Service, то как мне их инициализировать / использовать?

Любые указатели приветствуются. Заранее благодарны

PS:Я новичок в Android, поэтому, пожалуйста, исправьте мое понимание там, где это необходимо

...