Привет всем, надеюсь, у вас все в порядке, моя проблема в том, что я получаю исключение NullpointerException каждый раз, когда я пытаюсь определить, отключено ли местоположение, если это так, пользователь будет перенаправлен в Настройки, чтобы включить gps, и потому что у меня есть представление рециркулятора В местах, где есть расстояние между моим местоположением и их местоположением, настройки будут отображаться много раз, если местоположение отключено (столько раз, сколько мест)
Вот код:
public double Calculdistance(Pharmacien ph) {
float[] result = new float[10];
ml = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
try{
if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return 0;
}
Location location = ml.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
onLocationChanged(location);
Location.distanceBetween(latitude,longtitude,ph.getPosition().getLatitude(),ph.getPosition().getLongitude(),result);}
catch (NullPointerException e){
Toast.makeText(context, "GPS désactivée activer le svp", Toast.LENGTH_SHORT).show();
Intent intentRedirectionGPSSettings = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intentRedirectionGPSSettings.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
context.startActivity(intentRedirectionGPSSettings);
}
return Math.round(result[0]);
}