Местоположение изменилось уведомление Android - PullRequest
3 голосов
/ 06 января 2012

Привет, ребята. Я просто тестирую метод onLocationChanged в Android. Я реализовал способ, при котором при нажатии кнопки приложение возвращает строку с новыми значениями lat и lng.Но теперь я пытаюсь показать результаты автоматически каждый раз, когда местоположение меняется.Это то, что я до сих пор делал:

менеджер местоположений

public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);   

int minTime = 30000;
LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
MyLocationListener myLocListener = new MyLocationListener();
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setSpeedRequired(false);
String bestProvider = locationManager.getBestProvider(criteria, false);

locationManager.requestLocationUpdates(bestProvider, minTime, 1, myLocListener );

onlocationchanged

public void onLocationChanged(Location loc) {

  if(loc != null){

  lat1 = loc.getLatitude();
  lng1 = loc.getLongitude();

  currentlocation = "Location changed to lat: " + lat + "" + "lng: " + lng1 ;

    Context context = getApplicationContext();
    CharSequence text = currentlocation;
    int duration = Toast.LENGTH_LONG;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();


  }

}

Я установил requestlocationupdatesМетод запроса и обновления каждые 60000 миллисекунд. Моя проблема заключается в том, что приложение никогда не принимает значения lat и lng при изменении местоположения.Я протестировал приложение с помощью эмулятора и попытался установить telneting значения lat и lng.И я также ездил на своей машине, чтобы посмотреть, изменятся ли значения.

1 Ответ

2 голосов
/ 06 января 2012

Попробуйте:

currentlocation = "Location changed to lat: " + String.valueOf(lat1) + "" + "lng: " + String.valueOf(lng1) ;

и для теста вы можете просто использовать:

requestLocationUpdates(LocationManager.GPS_PROVIDER... 
...