这个问题与我正在开发的Android应用有关。我正在使用Android版本7的真实手机进行测试。
我希望FusedLocationApi以15分钟的间隔请求GPS位置。
当应用程序位于前台并且屏幕打开时,GPS请求会按预期发生。
当应用程序最小化且手机处于睡眠状态时,更新会按预期进行一到两个小时,然后逐渐减少并完全停止。看起来小振动或只是打开屏幕(应用程序仍在后台)会触发GPS更新。
// Request frequent location updates.
Intent locationUpdateIntent = new Intent(this, StoreLocationService.class);
locationUpdateIntent.setAction(StoreLocationService.ACTION_LOCATION_UPDATE);
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(15 * 60 * 1000); // 15 minutes
locationRequest.setFastestInterval(15 * 60 * 1000); // 15 minutes
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, locationRequest,
PendingIntent.getService(this, 0, locationUpdateIntent, 0));
答案 0 :(得分:1)
我认为这只是因为DOZE模式,谷歌引入DOZE模式,这是你的后台服务,使用互联网或网络,当你的设备大约3到5分钟理想或待机时,DOZE模式是活动的模式(意味着您关闭屏幕,没有任何使用互联网或网络的应用程序)。