Articles of geofencing

Android地理围栏API BroadcastReceiver未触发

我正在尝试使用Google Play服务中的geofencing api,但我无法让我的广播接收器触发其onReceive()方法。 看起来我尊重使其工作所需的一切,但我没有过渡事件。 我在我的依赖项中包含了google play服务 我请求了ACCESS_FINE_LOCATION权限 我在我的Manifest中注册了我的BroadcastReceiver ,并将导出值设置为“true”(有人说它是必需的) 我在我所在的确切位置添加了一个大地理围栏(我在我的手机上使用Google地图进行了validation),其中包含两种转换types且没有过期 我在地理围栏的中间尝试了一个精确的模拟位置,并在10秒后尝试了另一个地理围栏(我确保ACCESS_MOCK_LOCATION持续存在) 我确认我的手机位置已打开,其模式设置为高精度 我validation了互联网连接 添加地理围栏后,我尝试使用和不连接LocationClient 但是,我仍然获得了成功的onAddGeofencesResult()回调,但没有onReceive()回调。 我尝试使用Nexus 5和Nexus 7,两者都无法触发地理围栏过渡。 我也尝试了https://developer.android.com/training/location/geofencing.html上的示例,但其行为完全相同。 这是我的BroadcastReceiver类: public class GeofencesReceiver extends BroadcastReceiver implements ConnectionCallbacks, OnConnectionFailedListener, OnAddGeofencesResultListener { private final static String TAG = “GeofencesReceiver”; private Context context = null; private LocationClient locationClient = null; /** * An empty constructor is needed by […]

如何在Geofence android中添加后台服务

我正在尝试使用后台服务为监视器创建地理围栏。 地理围栏创建成功并在应用程序活动打开时工作,但在关闭应用程序地理围栏时不起作用。 我现在应该怎么做。 我的代码是: public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); ref = FirebaseDatabase.getInstance().getReference(“MyLocation”); geoFire = new GeoFire(ref); mVerticalSeekBar = (VerticalSeekBar)findViewById(R.id.verticalSeekBar); […]

如果应用程序被用户杀死,Android Geofences会被删除吗?

问题出在标题中。 如果应用程序被用户杀死,新的Android Geofences会被删除吗? 我正在使用新的Android Geofences (在Google IO 2013上宣布)。 如果用户使用Android任务管理器删除/杀死应用程序,那么如果应用程序的Geofences被删除,我就无法解决问题。 我认为使用旧的addProximityAlert技术它们不会被删除。

Android地理围栏是否能够重启?

是系统持久化他们还是我必须在重启后再次添加它们? 我在https://developer.android.com/training/location/geofencing.html的文档中没有find任何相关信息。

Android LocationServices.GeofencingApi示例用法

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

地理围栏:通过后台服务发送时HTTP请求失败。 给出UnknownHostException

我在android应用程序中实现了Geofence。 我按照这个链接在app中实现了’Geofence’。 我正在使用’Retrofit’库来调用’HTTP’请求。 应用具有以下权限: 这是我的’IntentService’代码: public class GeofenceService extends IntentService { private static final String TAG = GeofenceService.class.getName(); public static final int GEOFENCE_NOTIFICATION_ID = 0; public GeofenceService() { super(TAG); } @Override protected void onHandleIntent(Intent intent) { // Retrieve the Geofencing intent GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent); createLoggerFile(); // Handling errors if ( geofencingEvent.hasError() ) { String […]

地理围栏在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 […]

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

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

使用Google Play服务6.5。+测试地理围栏

我一直在测试最新Google Play服务中提供的地理围栏api,使用此处提供的官方示例: https : //github.com/googlesamples/android-Geofencing/当然,还要遵循培训课程: http:// developer.android.com/training/location/geofencing.html 当您在San Fransisco附近的两座Google建筑物时,样本会显示通知,所以当我靠近我的家或工作地点时,我会将其调整为触发。 如果我使用真实的设备,它的工作原理。 通知被正确触发。 但是,当我使用模拟器,并使用telnet或ddms更改位置时,没有任何反应。 我也尝试使用Genymotion,安装了Gapps,同样的东西:没什么。 有没有人有关于如何测试地理围栏的指针,而不是实际移动我的屁股? 因为在街上,没有办法调试代码……

设备重启后,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) { […]