【问题标题】:FusedLocationApi.requestLocationUpdates() stops interval requests after a whileFusedLocationApi.requestLocationUpdates() 在一段时间后停止间隔请求
【发布时间】:2017-09-07 04:04:56
【问题描述】:

这个问题是关于我正在开发的 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));

【问题讨论】:

    标签: android gps fusedlocationproviderapi


    【解决方案1】:

    我认为这只是因为打瞌睡模式,谷歌引入打瞌睡模式,即关闭使用互联网或网络的后台服务,当你的设备大约 3 到 5 分钟理想状态或处于待机状态时,打瞌睡模式处于活动状态模式(意味着您正在关闭屏幕,没有任何使用互联网或网络的应用程序)。

    【讨论】:

    猜你喜欢
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    相关资源
    最近更新 更多