我正在尝试学习Android中的位置服务,我正在做一个Android项目应用程序,在该应用程序中,我在离开家后定期向用户发送用户的位置。每当用户离开家时,应用程序中的代码就会开始跟踪用户。我还有一个代码,我在其中设置了围绕用户家的地理围栏,当它被触发时,将优先级从BALANCED更改为HIGH_ACCURACY并减少向服务器发送位置的间隔。也。 代码如下所示:我有一个locationWatcher类,我在其中初始化我的意图:
final Intent locationIntent = new Intent(context, LocationReceiver.class);
mLocationIntent = PendingIntent.getBroadcast(
context, 111 /*requestCode*/, locationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
final Intent geoFenceIntent = new Intent(context, LocationReceiver.class);
geoFenceIntent.putExtra(EXTRA_GEO_FENCE, true);
mGeoFenceIntent = PendingIntent.getBroadcast(
context, 113/*requestCode*/, geoFenceIntent, PendingIntent.FLAG_UPDATE_CURRENT);
然后,只要我获得位置更改或地理围栏旅行,我的位置接收器类就会唤醒并启动LocationService并将意图传递给它,以便我可以将该位置发送到服务器。
此代码工作正常,但在某些情况下,设备会在一段时间后停止发送位置。在少数情况下,我无法弄清楚为什么会发生这种情况。我需要继续发送位置,直到用户返回他的家。之后我的应用程序将停止向服务器发送位置。
我在我的应用程序中拥有所有必需的权限,我在Nougat和Marshmallow上都尝试了这两种权限,并且都显示了同样的问题。
提前致谢