Я какое-то время разрабатывал приложение для Android, которое использовалось для доступа к текущему местоположению пользователя и другим вещам. Но в то же время широта и долгота возвращают 0.0 & 0.0, а затем через некоторое время отображаются некоторые значения.
Я также использовал FusedLocationAPI (в настоящее время не рекомендуется) и FusedLocationProviderClient API, но также получил тот же результат. Я использовал LocationManager, но никаких улучшений вообще не было. Я приложил текущий код внизу.
Может ли кто-нибудь показать мне лучший способ доступа к информации о местоположении? Заранее спасибо:)
private void Locate() {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
String[] permits = {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION};
if (!PermissionsAs(this, permits)) {
ActivityCompat.requestPermissions(this, permits, REQ_CODE);
}
return;
} else if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
double lattitude = location.getLatitude();
double longitude = location.getLongitude();
String string = getCompleteAddressString(lattitude, longitude);
System.out.println(string);
System.out.println("Longitude: " + String.valueOf(lattitude) + " Lattitude: " + String.valueOf(lattitude) + "\n");
Toast.makeText(getApplicationContext(), "" + longitude + " " + lattitude, Toast.LENGTH_LONG).show();
sendText(lattitude, longitude);
}
}
}