Временной барьер Google с использованием Awareness API ненадежен - PullRequest
0 голосов
/ 25 октября 2018

Я создаю SDK, который использует Google Awareness API.

У меня есть некоторые действия, которые необходимо выполнять на основе разных расписаний на каждый день, даже когда приложение установлено на заднем плане - идеальное совпадение для Google FenceClient или около того, как я думал.

Проблема в том, что полученные уведомления не связаны со временем, которое я настроил в заборе - иногда уведомления задерживаются на минуты / часы, а иногдаЯ вообще не получаю эти уведомления.

Что страннее, что во всех примерах Google все еще используется устаревшая GoogleApiClient .

Технические проблемы:

  • Я определил эти два разрешения в манифесте:

использование-разрешения android: name = "android.permission.ACCESS_FINE_LOCATION"

использование-разрешения android:name = "android.permission.ACCESS_COARSE_LOCATION"

  • В консоли Google активирована функция информирования, и у меня определены ключи API. iВ манифесте.
  • Я пытался использовать оба (по одному в каждый раз) BroadcastReceiver и JobIntentService , используя PendingIntent.getBroadcast и PendingIntent.getService .Оба они также игнорировались в манифесте.
  • Я строю AwarenessFence следующим образом: TimeFence.inIntervalOfDay(dayOfWeek, TimeZone.getDefault(), startTimeOfDayMillis, stopTimeOfDayMillis); время начала и окончания указано в миллисекундах с начала дня.
  • fenceClient.updateFences успешно завершено.
...