2017-02-06 27 views
17

Из-за this bug моя команда решает вообще не использовать геообъективы. Является ли 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:

Там, кажется, 2 различных способов сделать Geofencing в Android:

  1. Использование Awareness[.fence] API
  2. Использование location Geofence API

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

Примечание:

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

  1. Доказательства того, что их приложения никогда не сталкивались с этой ошибки (хороший краш-отчеты, которые никогда не поймали Invalid API Key for package)
  2. видели эту ошибку и успешно реализовано исправление
  3. никогда не видел эту ошибку
+1

Вы пытались использовать Google geofencing api напрямую против использования api? –

+0

У меня нет. Я предложил использовать Google Geofencing для функции в нашем приложении. Другой разработчик вернулся: «Я попробовал это в другой компании, и он сломан, вот билет с ошибкой». Итак, теперь я пытаюсь получить обратную связь от любых разработчиков, у которых могут быть доказательства того, что геообработка в Android может быть выполнена сегодня. –

+0

Я не использовал API осведомленности, поэтому я не могу говорить о том, как хорошо или плохо он работает. Тем не менее, я не видел эту ошибку за два года, которые я потратил, используя API Geofencing. Я бы сказал, что API Geofencing имеет свой собственный набор проблем в отношении точности, времени, ложных событий и доступности, но эта ошибка, по-видимому, связана только с API-интерфейсом Awareness. –

ответ

1

Исправлена ​​ошибка, вы связаны уже содержится вся информация, не так ли?

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

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

Update

Ну, чтобы ответить на ваш вопрос «Является ли Geofencing полностью непригодным для использования в Android?», Я бы сказал, что нет, это не «полностью» непригодным для использования, но, очевидно, содержит несколько вопросов.

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

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

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

+0

В теме есть несколько других комментариев, которые указывают, что предложение НЕ разрешает проблему. Кроме того, через 18 дней после того, как этот вопрос был задан, Google [опубликовал обновление] (https://code.google.com/p/android/issues/detail?id=223751#c19), который должен исправить эту проблему. Тем не менее, есть комментарии по этой теме еще вчера, которые говорят, что они все еще видят это. –