0
Я пытаюсь получить местоположение по GPS в Android (5.1.1) через каждые две минуты. Приложение работает нормально, когда экран включен, но он не получает местоположение по GPS, когда экран выключен. Может ли кто-нибудь предложить мне, что делать? Ниже приведен мой код.Android Lollipop - местоположение GPS не отображается, когда экран выключен
startLoggingService() {
if (locManager == null) {
locManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
}
final Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(true);
criteria.setSpeedRequired(true);
criteria.setBearingRequired(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
String bestprovider = locManager.getBestProvider(criteria, true);
if (bestprovider != null && bestprovider.length() > 0) {
locManager.requestLocationUpdates(bestprovider, gpsMinTime,
gpsMinDistance, locationListener);
}
}
private final LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
didFindLocation = true;
latitude = location.getLatitude();
longitude = location.getLongitude();
altitude = location.getAltitude();
speed = (float) (location.getSpeed() * 3.6);
dt = location.getTime();
gpslatitude = String.valueOf(latitude);
gpslongitude = String.valueOf(longitude);
gpsaltitude = String.valueOf(altitude);
gpsspeed = String.valueOf(speed);
SimpleDateFormat sdfDateTime = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
datetime = sdfDateTime.format(new Date(dt));
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
};
Возможный дубликат [ «Sleep» проблема с обновлением местоположения GPS на некоторых устройствах] (http://stackoverflow.com/questions/24106387/sleep-issue-with-gps-location-updates-on-some-devices) –