Articles of android geofence

Android LocationServices.GeofencingApi示例用法

有谁知道使用LocationServices.GeofencingApi的例子? 我find的所有android geofencing示例都使用了已弃用的LocationClient类。 从我所看到的,LocationServices类是要使用的类,但似乎没有任何关于如何使用它的工作示例。 我发现的最接近的是此帖突出显示位置更新请求 更新:我发现的最接近的答案是这个git示例项目 – 但它仍然使用已弃用的LocationClient来获取触发的围栏。

如何在android geofences中实现“un-dwell”?

我有一个问题了解Androids地理围栏。 实际问题 :我使用googles geofence-api的Enter + Exit事件,但在许多设备上,信号非常不准确,无法跳入和跳出栅栏(跳跃经常大于半径400m)。 计划解决方案 :所以我想用Dwell来“平滑”这个。 如果位置在栅栏内保持一分钟,则停留时间。 到现在为止还挺好。 但是如何检测围栏的离开? 当我使用Exit ,由于那些signaljumps,可能会发生几次Exit 。 当我离开地理围栏超过一分钟时,我需要的是一种“不适”。 我想避免使用在快速重复的地理位置上注册的自定义逻辑重新实现整个地理围栏,并过滤掉小的exception值。 问题:geofence-api中有什么东西可以实现“不适”吗? 或者是否有最佳实践如何检查Exit是否真正退出?

Android Geofence示例代码中的错误? 有人可以确认吗?

我不确定这是否是新的Android GeoFence示例代码的错误 ,或者我对它应该做的事情的理解是错误的。 示例应用程序会创建地理围栏,但在地理围栏被破坏时不会发出警报。 如果有人想尝试并确认,可以从这里下载示例代码: https://developer.android.com/training/location/geofencing.html 这是我期待示例应用程序执行的操作: 设置2个不同的地理围栏。 在我的情况下,我通过输入他们各自的纬度/经度来选择相距一英里的2点。 我还将半径设置为250米。 我一个接一个地开车到这两个地点中的每一个,我假设会popup一个通知,表明地理围栏已被破坏。 在这种情况下, 没有注册任何通知或任何日志消息,这意味着“ReceiveTransitionsIntentService”从未被调用。 一个观察是, 当我开车到第一个位置,然后在该位置添加新的地理围栏时,通知会立即被触发 ,但是我设置并开车到的任何其他位置(地理围栏)都没有任何反应。 知道为什么吗? 我对样本应用程序function的理解是否正确? 除了示例代码中的内容之外,我还需要做什么才能在驾车时突破地理围栏时收到警报吗? 地理围栏监控是否与创建地理围栏分开,我在这里缺少什么? 非常感谢任何输入,我们非常渴望在我们的应用程序中使用它,但现在我们被卡住了。 谢谢,托里。

地理围栏在Android中完全无法使用吗?

由于这个错误,我的团队决定根本不使用地理围栏。 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之间,没有明显的模式。 这同样适用于设备型号和制造商:许多和多个制造商和型号。 这听起来像一个非常严重的Heisenbug。 更新: 在Android中似乎有两种不同的方式来进行地理围栏: 使用Awareness […]

处理多个地理围栏过渡与公共区域

如果我有这两个地理围栏,在注册这些地理围栏后,当我进入或离开这些圈子的圆周时,我会得到通知。 但是,如果我正在通过公共区域,即从一个圆圈到另一个圆圈,我不希望我的应用程序发送通知。 可能吗? 如果是这样,那怎么样?

以编程方式将位置模式更改为高精度Android

是否有可能获得用户在位置设置选项下的三种模式中选择的位置模式的信息,即 1.准确度高 2.电池节省 3.仅限GPS 我想以编程方式检查用户是否选择了高精度模式,如果没有,则自动启用它。 可能吗 ? 请指教。

如何使用Android Geofencing API?

我一直在测试新的Google Play Geofencing服务API。 我从Android开发者网站下载了示例代码。 接下来,我在Android设备(Galaxy Note 2)上运行示例代码。 我把办公室的地理位置和半径放到了10米,但是当我走到办公室时,什么都没发生。 在运行示例代码时,我注意到的一件事是,当我已经在地理围栏范围内,然后将地理围栏添加到LocationClient ,没有任何反应。 我已经阅读了LocationClient类文档 ,并find了以下段落: 如果用户禁用了网络位置提供程序,则地理围栏服务将停止更新,将删除所有已注册的地理围栏,并通过提供的待处理意图生成意图。 在这种情况下, hasError(Intent)返回true, getErrorCode(Intent)返回GEOFENCE_NOT_AVAILABLE 。“ 所以我打开WiFi,然后走到我的办公室(在地理围栏内),然后我收到通知“地理围栏输入”。 我有以下问题: 地理围栏是否仅适用于WiFi? 为什么我的3G网络提供的位置不起作用? 这是示例代码中的错误吗? 或者这是我的错误?

设备重启后,Geofences是否在android中保持活动状态

我正在编写一个应用程序,当有人在正在安装的应用程序的生命周期内进入/退出多个站点时,需要使用地理围栏。 我的地理围栏实现(非常类似于下面的第二个链接)在我第一次安装应用程序时工作正常,无论是在移入/移出地理围栏还是使用模拟位置来模拟它,直到设备重新启动。 在重新启动时,模拟位置或实际上物理移入和移出地理围栏似乎都会触发事件并将未决意图发送到我的广播接收器。 我已经查看了以下三个链接,并且还阅读了相当多的文档,但我无法find一个明确的答案,直接说注册地理围栏持续存在或重启后不会持续存在。 这些是我在堆栈溢出时查看的链接: Android地理围栏是否能够在重启时幸存? Android Geofence最终停止获得过渡意图 Android Geofences在删除/过期之前或仅在我的PendingIntent启动之前保持活动状态 如果有人碰巧知道他们是否坚持重新启动后的答案,或者如果他们没有解决问题,那么我们将非常感激! 我最近的希望是为BOOT_COMPLETED创建一个监听器,并在启动时重新注册它们,但id更喜欢只在必要时才这样做。 非常感谢提前! 编辑:虽然我没有find明确的(书面)答案,但我很确定TonyC先生发布的内容是否正确,并选择了该解决方案。 非常感谢TonyC! 如果有人想看到我的解决方案,我会在设备启动时监听启动完成操作,然后重新注册我需要的所有地理围栏。 这是显而易见的: 然后为它创建一个广播接收器,它将在启动时重新注册地理围栏: package com.YOUR.PACKAGE.geofence; import android.app.PendingIntent.CanceledException; import android.content.Context; import android.content.Intent; import android.support.v4.content.WakefulBroadcastReceiver; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.location.Geofence; public class BootCompleteReceiver extends WakefulBroadcastReceiver { private static final String TAG = “BootCompleteReceiver”; @Override public void onReceive(Context context, Intent intent) { […]

在Android中添加地理围栏时出错(状态代码1000)

我在onAddGeofencesResult(int statusCode, String[] geofenceRequestIds)回调中收到错误, statusCode = 1000 。 我启用了GPS和WiFi。 我还有Google Play服务,我可以跟踪我的位置并请求更新。 为什么我无法添加地理围栏? 我甚至无法从文档示例应用程序添加地理围栏。 我得到以下Toast消息: “添加Geofences:失败,错误代码1000 GeofenceRequestIds = [1,2,1,2]” 从文档(statusCode 1000): public static final int GEOFENCE_NOT_AVAILABLE 地理围栏服务现在不可用。 通常这是因为用户在设置>位置访问中关闭了位置访问权限。 常数值:1000(0x000003e8)

如何提高Android地理围栏进入/退出通知的一致性?

我正在使用内置的地理围栏API(播放服务)并且结果好坏参半。 看起来在设置地理围栏之后,即使GPS打开,进入/退出的通知也非常不一致,并且具有最新位置(LocationClient已连接,在后台运行。)我开始监控(轮询)位置更改和调试文本字段中的距离,并且即使基于设备注册的位置和地理围栏的位置(我在技术上在地理围栏的内部/外部),通常有时会触发通知,有时也不会。 有什么方法可以让它更具可预测性? 我几乎想要放弃这个api并根据设备位置的轮询实现我自己的(电池耗尽)地理围栏。