Я разрабатываю приложение, и мне нужно местоположение пользователя 24/7, даже когда приложение закрыто. Чтобы решить эту проблему, у меня есть AlarmManager, который каждую минуту выполняет код, чтобы получить местоположение
public class LocationTracker extends BroadcastReceiver {
private int MY_PERMISSIONS_REQUEST_GET_LOCATION;
private FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
private DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
private FusedLocationProviderClient fusedLocationClient;
//private LocationManager locationManager = (LocationManager) thi;
private LocationListener mLocationListener;
private LocationManager locationManager;
public static final String ACTION_PROCESS_UPDATE = "com.example.alwaysafe.UPDATE_LOCATION";
@Override
public void onReceive(Context context, Intent intent) {
locationManager = (LocationManager) context.getSystemService(context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10f, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.i("LISTENER", ".");
if (location != null) {
Log.i("LATITUDE LISTENER", String.valueOf(location.getLatitude()));
Log.i("LONGITUDE LISTENER", String.valueOf(location.getLongitude()));
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
});
}
}
Этот код работает, когда приложение работает на эмуляторе, но когда я пытаюсь запустить его на реальном смартфоне, AlarmManager активируется, но не находит местоположение