Я пытаюсь разработать пример приложения, которое может считывать данные о подгонке даже в фоновом режиме. С точки зрения пользователя: 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, поэтому, пожалуйста, исправьте мое понимание там, где это необходимо