问题标签 [android-geofence]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
891 浏览

android - 对当前位置和地理围栏使用一个 LocationClient 或使用两个不同的 LocationClient

我创建了一个名为 LocationHelper 的类来获取手机的当前位置。有了这些信息,我会显示商店列表以及到我当前位置的距离。我使用了一个 LocationClient 和 LocationRequest,在 onLocationChanged 事件上我发送了一个 BroadcastIntent,在我的活动中,我做了我需要的事情。它工作正常。

现在,对于我的应用程序的其他功能,我需要使用地理围栏。这个想法是在手机用户靠近商店时显示通知。我的第一种方法是编写另一个名为 LocationHelperGeofence 的 LocationHelper。使用官方教程,我做了这门课。它工作正常

两个班级都可以,但我每个班级都有 2 个 LocationClient。此外,在每个班级中,我都会检查 Google Play 服务是否可用并复制另一个代码。

我的问题是:

这种做法对吗?最好的工作方式是有 2 个类和 2 个 LocationClients?或者最好只有一个类来获取当前位置并使用地理围栏?

谢谢,对不起,如果我的英语不是最好的

0 投票
1 回答
3426 浏览

android - 在 PendingIntent 中进行位置更新后在 android 中删除和添加地理围栏

我正在开发一个使用新的 android 地理围栏 API 的 android 应用程序,我想注册 100 多个地理围栏。
我每 1 分钟在后台更新一次我的位置,并且 IntentService 类中的 onHandleIntent 方法我正在计算当前位置与最近的 100 之间的距离,然后我需要监视这 100 个地理围栏。

问题是我无法在获取当前位置后添加最近的 100 个地理围栏,并且所有这些都必须在应用程序关闭时起作用。

这是我的代码:

另请注意,在添加 RegisterGeofences 方法之前,有关 updatelocations 的所有内容都在后台完美运行

0 投票
12 回答
35950 浏览

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

我在onAddGeofencesResult(int statusCode, String[] geofenceRequestIds)回调中遇到错误statusCode = 1000

我启用了 GPS 和 WiFi。我也有 Google Play 服务,我可以跟踪我的位置并请求更新。为什么我无法添加地理围栏?即使从文档示例应用程序中,我也无法添加地理围栏。我收到以下 Toast 消息:

“添加地理围栏:失败,错误代码 1000 GeofenceRequestIds=[1,2,1,2]”

从文档(statusCode 1000):

public static final int GEOFENCE_NOT_AVAILABLE

地理围栏服务现在不可用。通常这是因为用户在设置 > 位置访问中关闭了位置访问。

常数值:1000 (0x000003e8)

0 投票
2 回答
270 浏览

android - 当前用户位置的地理围栏

我目前正在研究一个可能的 Android 和 iPhone 项目。我需要知道地理围栏是否可以帮助我,或者是否应该使用其他方法。我认为地理围栏不是以这种方式使用的,但我还是问了。是否可以在当前用户位置放置地理围栏(即使它移动)并在其他人进入地理围栏位置时发送消息(即使他们是 100 000)?非常感谢您的回答。

0 投票
2 回答
13784 浏览

android - Android 地理围栏仅适用于打开的应用程序

我正在认真研究这个主题很多天......我在这里也看到了很多主题......但不幸的是我找不到解决方案......

我正在编写一个使用新的 Google API for Geofence 的应用程序......好吧,我可以处理地理围栏的“输入”和“输出”,但前提是我的应用程序是打开的!即使我打开了wifi,打开了gps,打开了3G,但应用程序,它不会触发任何事件......只要应用程序打开......

我正在使用与文档http://developer.android.com/training/location/geofencing.html完全相同的 GeofenceRequester 类。

即使课程相同,我也会在这里发布代码:

和服务:

以及 Activity 中的广播接收器:

这是我在发送到 GeofenceRequester 之前用来创建 GEofence 的一段代码。

任何帮助都会很棒!谢谢!

0 投票
3 回答
16765 浏览

android-geofence - Android Geofence 最终停止获取转换意图

我有一个以 Google 的地理围栏示例代码开头的应用程序。这几天效果很好,我得到了我预期的所有过渡意图。但是,过了一段时间,比如 3 天,应用程序停止获取这些意图,我不知道为什么。

创建围栏时,我将过期持续时间设置为 Geofence.NEVER_EXPIRE

这是我的 IntentService,在它们停止工作之前我可以在其中获取转换意图:

这是清单的相关部分:

在我的 GeofenceRequester 类中,它几乎与示例代码相同。以下是相关部分:

谁能明白为什么这会停止工作?

0 投票
3 回答
6333 浏览

android - 在 Android 中进入 GeoFence 时无法显示通知

GeoFencing在 Android 上工作,我被困在某一点上。我的任务是在notification用户进入/退出Geofence我定义的区域时向他展示。

这是我的代码:

Activity class

GeofenceReceiver class

AndroidManifest.xml容器接收器

所以基本上我可以看到我的 GeoFence 被创建,但我没有收到同样的通知。

有人对此有解决方案吗?

0 投票
1 回答
984 浏览

android - 就资源消耗而言,位置和地理围栏 api 之间的更好选择

我正在制作一个应用程序,当他在某些位置附近时通知用户,它可能需要同时激活各种地理围栏。

因为 android 的geofencing API最近更新了新的Play Services并更新提及以改善电池消耗

同时使用多个地理围栏来获取通知是否更好,或者我应该定期将用户的位置发送到服务器并决定是否通知用户

多个地理围栏是否比检索位置和发送到服务器消耗更多内存

注意:地理围栏的数量可能超过 100 个,因此在这种情况下我可以使用此处发布的解决方案

0 投票
2 回答
7525 浏览

android - 设备重新启动后,地理围栏是否在 android 中保持活动状态

我正在编写一个应用程序,当有人在安装应用程序的整个生命周期内进入/退出多个站点时,它需要使用地理围栏。

当我第一次安装应用程序时,我的地理围栏实现(非常类似于下面的第二个链接)一切正常,无论是在移入/移出地理围栏时,还是在使用模拟位置来模拟它时,直到设备重新启动。

在重新启动时,模拟位置和实际进出地理围栏似乎都不会触发事件并将未决意图触发到我的广播接收器。

我查看了以下三个链接,并且还阅读了相当多的文档,但我无法在任何地方找到明确的答案,直接说注册的地理围栏在重新启动后仍然存在或不存在。

这些是我在堆栈溢出中查看的链接: Android 地理围栏是否能在重启后幸存下来?

Android Geofence 最终停止获取转换意图

Android 地理围栏是否保持活动状态直到删除/过期或仅在我的 PendingIntent 启动之前

如果有人碰巧知道他们是否会在重新启动后坚持下去,或者如果他们没有解决,那将不胜感激!我目前的最后一个希望是为 BOOT_COMPLETED 创建一个侦听器并在启动时重新注册它们,但我更愿意只在绝对必要的情况下这样做。

提前非常感谢!

编辑:虽然我还没有找到明确的(书面)答案,但我很确定 TonyC 先生发布的内容是正确的,并选择了该解决方案。非常感谢托尼C!

如果有人想查看我的解决方案,我会在设备启动时监听启动完成操作,然后重新注册我需要的所有地理围栏。

这是在清单中:

然后为其创建一个广播接收器,它将在启动时重新注册地理围栏:

还值得注意的是,如果您在启动时处于地理围栏内,这通常会在地理围栏注册后触发地理围栏的未决意图。

因此,例如,如果地理围栏启动了一个应用程序,那么当您启动恰好位于地理围栏中的设备时,一旦启动完成广播接收器注册了地理围栏,它也会打开该应用程序,并且位置服务已经确定了您的位置是。

希望这对某人有所帮助。

0 投票
1 回答
2227 浏览

android - addProximityAlert 无法按预期工作

ios sdk 有很好的区域监控功能。我在android中需要类似的东西,我认为我们有两种选择。地理围栏和 LocationManager。

地理围栏有非常整洁的示例和错误,所以我更喜欢 LocationManager。除了一个之外,Everyting 在 LocationManager 中都可以正常工作。如果您将当前位置添加为 ProximityAlert ,它会立即触发“ENTERING”,但这是我当前的位置,并不意味着我进入了该区域。因此,如果我在区域内,每次启动应用程序时都会触发“ENTERING”。(即使我没有移动)

只有当用户真正进入该区域时,我才能解决这个问题并触发事件?

这是我为我的位置添加 PeddingIntents 的方式。

接收者

显现

非常感谢

PS:iOS没有这个问题,他们的文档解释了它

注册授权应用程序后立即开始对地理区域的监控。但是,不要期望立即收到事件。只有越界才会产生事件。因此,如果在注册时用户的位置已经在区域内,则位置管理器不会自动生成事件。相反,您的应用程序必须等待用户跨越区域边界,然后才能生成事件并将其发送给委托。也就是说,您可以使用 CLLocationManager 类的 requestStateForRegion: 方法来检查用户是否已经在区域边界内。