Подтвердить что ты не робот

Является ли geofencing полностью непригодным для использования в Android?

Из-за эта ошибка моя команда решает вообще не использовать геообработку. Является ли geofencing в Android тем, что можно использовать или нет?

Из отчета об ошибке:

На всех собственных тестовых устройствах все отлично работает с отладкой и релиз. Однако для некоторых пользователей мы получаем отчеты о сбоях которые указывают на проблему с API:

Fatal Exception: java.lang.SecurityException: Invalid API Key for package = de.stocard.stocard .Status code received = -1
       at android.os.Parcel.readException(Parcel.java:1620)
       at android.os.Parcel.readException(Parcel.java:1573)
       at com.google.android.gms.common.internal.zzu$zza$zza.zza(Unknown Source)
       at com.google.android.gms.common.internal.zzd.zzqz(Unknown Source)
       at com.google.android.gms.internal.zzpw$zzc.zzapl(Unknown Source)
       at com.google.android.gms.internal.zzpw$zzf.run(Unknown Source)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at com.google.android.gms.internal.zzrn.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)

Это происходит в версиях Android от 4.4.2 до 7.0 без заметный узор. То же самое относится к модели устройства и производитель: многие и несколько производителей и моделей.

Это звучит как довольно тяжелый Гейзенбуг.

Update:

Кажется, есть два разных способа сделать geofencing в Android:

Нам нужно будет использовать API-интерфейс Awareness, чтобы получить возможности и удобство использования батареи.

Примечание:

Я вижу 1 закрытое голосование из-за "главным образом основанного на мнениях". Итак, позвольте мне быть ясными, я не хочу ответов на неподтвержденные мнения. Я хочу факты, ссылки или конкретные знания. У меня сделано исследование и ссылка случайная ошибка сбоя без надежной работы. Я хочу, чтобы другие отметили, что они успешно выполнили геообработку и имеют:

  • Доказательства того, что их приложения никогда не сталкивались с этой ошибкой (хорошая отчетность о сбоях, которая никогда не попадала Invalid API Key for package)
  • Увидели эту ошибку и успешно внедрили исправление
  • Никогда не видел эту ошибку
4b9b3361

Ответ 1

Связанная вами ошибка уже содержала всю информацию, не так ли?

В наших проверках есть ошибка, которая иногда бросает это SecurityException, когда есть сетевая ошибка для аутентификации. Исправление будет включено в следующую версию сервисов Google Play.

В настоящее время лучшим решением будет создание UncaughtExceptionHandler в потоке, который вы называете GoogleApiClient.connect(). Для большинства людей это будет в основном потоке, который вы можете получить через Looper.myLooper(). GetThread().

Обновление

Хорошо, чтобы ответить на ваш вопрос: "Является ли geofencing полностью непригодным для использования в Android?", я бы сказал "нет", он не "полностью" непригоден, но, очевидно, содержит несколько проблем.

Не следует ли использовать геообъекты вообще из-за этих ошибок? Я предполагаю, что это сильно зависит от варианта использования и действительно является вопросом, основанным на мнениях. Как всегда с мобильными устройствами, вы никогда не сможете быть на 100% уверенными, если что-то будет работать. У вашего мобильного устройства может отсутствовать сигнал, и даже если в коде не было ошибок, он может по-прежнему не получать уведомления об определенном местоположении по различным причинам. На мобильном телефоне все о том, как вы справляетесь с ошибками.

Я бы выполнил все, что вы хотите реализовать, попытайтесь сделать то, что было предложено в билете ошибки (UncaughtExceptionHandler), чтобы поймать ошибку и реализовать отчеты аналитики/сбоя в приложении, чтобы вы, по крайней мере, получили информацию о том, как часто это действительно происходит там в поле.

Уточните пользователям, что нет 100% гарантии того, что функция geofence вашего приложения работает в любое время из-за базовой системы, и я думаю, что они все равно будут рады этой функции. Вероятно, есть некоторые FAQ где-то в вашем приложении или на вашей домашней странице, где описаны известные проблемы. Надеюсь, это поможет вам сделать деление