Geofencing在Android中完全无法使用吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (42)

由于这个错误我的团队决定不使用geofencing。在Android中进行geofencing可用或不可用的东西?

从错误报告:

在所有内部测试设备上,一切运行良好,具有调试和发布版本。但是,对于某些用户,我们会收到崩溃报告,指出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) 这发生在从4.4.2到7.0的Android版本中,没有明显的模式。这同样适用于设备型号和制造商:许多制造商和型号。

更新:

似乎有两种不同的方式可以在Android中进行地理围栏:

  1. 使用Awareness [.fence] API
  2. 使用位置Geofence API

我们需要使用Awareness API来获得我们想要的功能和电池友好性。

提问于
用户回答回答于

你链接的bug已经包含了所有的信息,不是吗?

我们的检查中存在一个错误,当有网络错误进行身份验证时,有时会抛出SecurityException。该修补程序将在下一版Google Play服务中推出。 目前,最好的解决方法是在您调用GoogleApiClient.connect()的线程上设置UncaughtExceptionHandler。对于大多数人来说,这将在主线程上,您可以通过Looper.myLooper()。getThread()获取。

更新

由于这些错误,您是否应该不使用geofencing?我想这很大程度上取决于用例,并且确实是一个基于观点的问题。与移动设备一样,如果某件事情有效,您永远无法100%确定。您的手机可能没有信号,即使代码中没有错误,它仍然可能因各种原因而无法通知某个特定位置。在移动设备上,这一切都是关于如何处理错误。

扫码关注云+社区