Я просматривал все стековые потоки и поисковые сайты и нашел так много разных или устаревших ответов, что не знаю, как ответить на этот вопрос.Я пытаюсь получить широту и долготу для моего приложения.Я дошел до того, что знаю, как использовать диспетчер местоположений, но затем он требует разрешения вызовов. Я пытался найти решения о том, как его использовать, но существует так много ответов с таким разным мнением о том, являются ли эти ответыправильный.Вот мой код, может ли кто-нибудь помочь мне найти решение о том, что поставить в разрешение на вызов для менеджера местоположений, и будет ли этот код и получать мне долготу и широту?Результаты будут использованы во фрагменте.
Это разрешения в моем файле манифеста: ACCESS_FINE_LOCATION, INTERNET и ACCESS_COARSE_LOCATION.
public class LocationFinder extends TestFragment implements LocationListener {
private static final String TAG = "LocationFragment";
private LocationManager mLocationManager;
private static double latitude;
private static double longitude;
public LocationFinder() {
mLocationManager =(LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), 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;
}
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
}
@Override
public void onLocationChanged(Location location) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
@Override
public void onStatusChanged(String s) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
public static double getLatitude(){
return latitude;
}
public static double getLongitude(){
return longitude;
}
}