前台服务中的位置管理器在一分钟后死亡

问题描述 投票:0回答:1

我正在前台服务中创建一个LocationManager。它似乎可以正常工作约一分钟,但是此后没有记录新位置。如果我禁用了该应用的电池优化功能,则位置会不断更新。似乎没有任何迹象表明该前台服务已被终止,因为该通知仍然可见。

Android 9,小米Redmi注意事项7。

[进一步调查后,我通过简单的Log.v向前台服务添加了一个计时器。即使位置不再通过,这似乎仍会继续记录。

    val updateIntervalInMilliseconds: Long = 3000;
    val updateDistanceInMeters: Float = 2f;

    locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager

    val criteria = Criteria();
    criteria.accuracy = Criteria.ACCURACY_FINE;
    criteria.powerRequirement = Criteria.POWER_HIGH;
    criteria.isAltitudeRequired = true;
    criteria.isSpeedRequired = false;
    criteria.isCostAllowed = true;
    criteria.isBearingRequired = false

    criteria.horizontalAccuracy = Criteria.ACCURACY_HIGH
    criteria.verticalAccuracy = Criteria.ACCURACY_HIGH;

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        throw RuntimeException("Location tracking started but permissions have not been granted");
    } else {
        locationManager!!.requestLocationUpdates(locationManager!!.getBestProvider(criteria, true), updateIntervalInMilliseconds, updateDistanceInMeters, locationListener, null)
    }
android android-9.0-pie
1个回答
0
投票

请检查this可能会对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.