Отображение местоположения пользователя в Android - PullRequest
0 голосов
/ 13 января 2011

У меня проблема с получением местоположения пользователя (мое местоположение).Мой код

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, пока включен поставщик сообщений приложения.Я не нашел никаких проблем в этом коде.Я также проверил его на устройстве, оно показывает, что поставщик включен, а местоположение не найдено.

Я не реализовал прослушиватель местоположения в классе.Нужно ли реализовать слушателя местоположения в моем классе?

1 Ответ

3 голосов
/ 13 января 2011

Вы получаете только последнее известное местоположение с телефона.Если это значение равно NULL, то есть, если последнее известное местоположение недоступно, вы не пытаетесь получать местоположения каким-либо другим способом.

Необходимо реализовать LocationListener и зарегистрировать его для получения обновлений местоположения в соответствии с этим руководством: http://developer.android.com/guide/topics/location/obtaining-user-location.html Это приведет к тому, что телефон попытается найти местоположение пользователя и передать его в ваше приложение в форме объекта Location.

...