Показание местоположения пользователя в Android
-
10-10-2019 - |
Вопрос
У меня есть проблема в получении местоположения пользователя (мое местоположение). Мой код
double lat;
double lng;
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
String provider = LocationManager.GPS_PROVIDER;
Location location = locationManager.getLastKnownLocation(provider);
if(!locationManager.isProviderEnabled(provider)){
locationManager.setTestProviderEnabled(provider, true);
}
boolean enabled = locationManager.isProviderEnabled(provider);
if(enabled){
Toast.makeText(LoginActivity.this,"provider enabled",Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(LoginActivity.this,"provider disabled",Toast.LENGTH_LONG).show();
}
if(location!=null){
lat = location.getLatitude();
lng = location.getLongitude();
AlertDialog.Builder ab=new AlertDialog.Builder(LoginActivity.this);
ab.setMessage(Html.fromHtml("<b><font color=#ff0000>Location" +"</font></b><br>"
+location.toString()+"<br>Latitude: "+lat
+"<br>Longitude "+lng));
ab.setPositiveButton("ok",null );
Toast.makeText(LoginActivity.this,"You are at "+location.toString(),Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(LoginActivity.this,"Location not found",Toast.LENGTH_LONG).show();
}
Моя проблема в том, что я получаю местоположение как null
в то время как поставщик сообщений приложения включен. Я не нашел никакой проблемы в этом коде. Я также проверил его на устройстве, показывает, что поставщик включен, а местоположение не найдено.
Я не внедрил слушателя местоположения в классе. Необходимо ли реализовать слушателя местоположения в моем классе?
Решение
Вы получаете только последнее известное место с телефона. Если это NULL, что, если не доступно последнее местоположение, вы не пытаетесь получить местоположения каким -либо другим способом.
Вы должны реализовать LocationListener ASTREAD IT для получения обновлений местоположения в соответствии с этим руководством: http://developer.android.com/guide/topics/location/obtaining-user-location.html Это приведет к тому, что телефон попытается получить местоположение пользователей и передать его своему приложению в виде объекта местоположения.