#java #android #google-maps
#java #Android #google-карты
Вопрос:
Я пытаюсь написать приложение для отслеживания, которое должно получать данные о местоположении и представлять их на карте. Приложение работает нормально, когда оно отображается на экране, но когда оно выключено или телефон заблокирован, оно не будет получать обновления и местоположение. Что я могу сделать, чтобы он продолжал обновляться, даже когда телефон заблокирован?
locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
...
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,2500,5, locationListenerGPS);
...
LocationListener locationListenerGPS = new LocationListener() {
@Override
public void onLocationChanged(android.location.Location location) {
LatLongLastKnownPos = LatLongCurrentPos;
LatLongCurrentPos = new LatLng(location.getLatitude(), location.getLongitude());
if ( isMapReady ) { updateMap(); }
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
Комментарии:
1. developer.android.com/about/versions/oreo /… ? Последние версии Android стали очень требовательными к постоянным обновлениям местоположения. В Android 10 и выше для этого есть специальное разрешение, но в целом оно не одобряется. Поскольку это такая угроза конфиденциальности, существует вероятность того, что Android полностью запретит его в будущем.
2. Спасибо, я постараюсь это реализовать.
3. может быть, какой-то startForegroundService() может быть хорошей идеей?