Articles of android geofence

在Geofencing的Google教程中没有看到Geofence转换

我正在尝试使用Google的示例testingGeofencefunction:创build和监视地理围栏 。 我已经在这里上传了代码 。 问题是我从来没有得到进入或退出的通知。 我有Wifi,4G和GPS。 我曾尝试通过以下方式进行testing: 我甚至走出我的房子约五十英尺,走回去,但没有通知。 我可以看到播放服务被连接,甚至MainActivity.java中的“GeofenceUtils.ACTION_GEOFENCES_ADDED”被触发,所以我认为Geofences正在被正确添加。 在设置中启用模拟位置,并使用这个假GPS应用程序和改变的位置 – 从Geofence1相同的坐标开始,然后设置为完全外(在另一个状态) – 但我仍然没有得到一个退出通知。 我究竟做错了什么? ANYONE成功运行了这个Google的例子:Creating&Monitoring Geofences 。 我已经在这里上传代码,以方便浏览。 我只是试图学习Geofencing – 检测进入和退出。 我将标记任何答案作为正确的答案,我可以使用在我的实际设备上进行工作 。

如何在Android中使Geo Fencing警报更加准确

您好,我正在尝试在Android中添加Geo Fence的function。 我正在使用http://developer.android.com/training/location/geofencing.html来创build和监控Geo Fences。 我使用IntentService警报(input/退出),但对我来说,它不工作。 但是当我离开并回到区域testing它时,它不适合我。 我已打开设备的GPS,但设备未连接到互联网。 任何人都可以帮助我,使其更加准确和完美,没有任何问题。 public class MainActivity extends Activity implements GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener, LocationClient.OnAddGeofencesResultListener { private LocationClient locationClient; private String TAG = "MainActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (resp == ConnectionResult.SUCCESS) { locationClient = new LocationClient(this, this, this); locationClient.connect(); } } @Override public void […]

Android Geofencing

我已经通过了Geofencing的教程 ,我有一个疑问。 Geofencing是否要求您持续监控用户的位置? 或者当转换已经过去的时候,添加Geofence的LocationClient会自动触发? 这可能看起来像一个明显的问题,但教程从来没有提到任何有关从位置pipe理器请求位置更新。

意图没有收到来自Android Geofence事件

一切正常build立,并在模拟器中运行,但我似乎无法让我的IntentServicelogging任何东西。 我确定有一些基本的东西是我错过或者忽视的,但是我对Android / Java相当陌生,并且现在已经没有任何想法了。 public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { private Geofence geofence; private PendingIntent mGeofencePendingIntent; private GoogleApiClient mGoogleApiClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LatLng latLng = new LatLng(39.7492350, -104.9913250); geofence = new Geofence.Builder() .setRequestId(GEOFENCE_REQ_ID) .setCircularRegion(latLng.latitude, latLng.longitude, GEOFENCE_RADIUS_IN_METERS) .setExpirationDuration(GEOFENCE_EXPIRATION) .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT) .build(); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(this) […]

监视库中的位置设置

我正在研究可用于监视Android设备上的地理栅栏的库。 我注意到,在closures“位置服务”后,我在Google Play位置服务GeofencingApi类中注册的地理位置信息将丢失,并在设备设置中重新开启。 我见过人们build议我需要在我的AndroidManifest.xml文件中注册android.location.PROVIDERS_CHANGED广播接收器。 我已经这样做了 – 但是当我在testing应用程序中添加和删除testing提供程序时,这个广播接收器只会被调用。 在设备设置中切换位置服务时,我完全没有收到它。 难道我做错了什么? 有谁知道如何可靠地确定用户切换设备设置中的位置服务? 我希望能够在后台看到这些事件 – 即使我的应用程序没有运行。 我想我可以设置一个在后台运行的重复任务,并定期检查位置服务是否已经切换,但这听起来很糟糕,效率不高。 如果有帮助,我正在testing运行Android 4.4.2的Moto G。 到目前为止,我用geofences完成的所有工作都很好。 编辑:经过更多的研究,我发现PROVIDERS_CHANGED广播的行为是高度可变的,取决于手机版本和型号。 运行Android 5.1的我的Nexus 5似乎正常工作 – 我可以非常有效地获得PROVIDERS_CHANGED广播。 我也有一个运行4.4.x的Moto G和Moto X手机,他们从来没有为我制作PROVIDERS_CHANGED广播。 在Android 4.2上的三星Galaxy S3会为我制作广播,但是在我使用testing位置提供商的Map Activity后停止播放。 无论如何,我决定暂停这个问题。 我认为Android只是越野车。

Geofencing API触发器在已经在区域中时input事件

我遇到了最新的Android Geofence API的这个问题。 用法与示例用法完全相同。 我设置了500米半径的Geofence.GEOFENCE_TRANSITION_ENTERtypes地理栅栏,截止date为Geofence.NEVER_EXPIRE 。 这工作正常,但如果我约10米经纬度,我设置geofence,立即触发。 那么我是否理解了Geofence.GEOFENCE_TRANSITION_ENTER这个词在这里是错误的,不应该只在我们在区域之外并且input时触发,而不是在我们已经在区域中时触发了吗? 谢谢。

Android LocationServices.GeofencingApi示例用法

有谁知道使用LocationServices.GeofencingApi的例子吗? 我find的所有的Android geofencing示例都使用了已弃用的LocationClient类。 从我所看到的,LocationServices类是可以使用的类,但似乎没有任何有关如何使用它的工作示例。 我发现最近的这个post突出了位置更新请求 更新:我find的最接近的答案是这个混帐示例项目 – 但它仍然使用已弃用的LocationClient来触发屏蔽。

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

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

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

我不确定这是否是新的Android GeoFence示例代码的错误 ,或者我理解它应该做什么是错误的。 示例应用程序创build地理围栏,但在地理围栏被破坏时不会发出警报。 如果有人愿意尝试并确认,可以从这里下载示例代码: https://developer.android.com/training/location/geofencing.html 这就是我期待的示例应用程序要做的事情: 设置2个不同的地理栅栏。 在我的情况下,我通过input他们各自的纬度/长度,一英里select了2分。 我也把半径设置为250米。 我开车到这两个地方的每个地方,我假设一个通知将popup显示地理围栏已被违反。 在这种情况下, 没有通知或任何日志消息被注册 ,这意味着“ReceiveTransitionsIntentService”永远不会被调用。 一个观察是, 当我开车到第一个位置,然后在该位置添加一个新的地理围栏时,通知立即被触发 ,但是我设置和开车的任何其他位置(地理围栏)都没有发生。 任何想法为什么? 我的理解是否正确的示例应用程序的function? 除了示例代码中的内容以外,当我在开车时违反地理围栏时,是否还需要做任何事情? geofence监控与创buildgeofences是分开的,我在这里错过了什么? 高度欣赏任何input,我们非常渴望在我们的应用程序中使用这个,但现在我们被卡住了。 谢谢,Torri。

我如何使用Android Geofencing API?

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