Android: использование LocationManager и провайдера - PullRequest
1 голос
/ 11 ноября 2010

Я новичок в Android и пробовал вещи на моем эмуляторе Android. Играя с менеджером местоположения и слушателем местоположения, я мог проверить код изменения местоположения, используя эмулятор. Locationlistener ловит изменение местоположения и перемещается в определенное местоположение.

Теперь я хочу повторить тот же тест, используя мою программу, то есть передавать новые координаты каждые x секунд (может быть, через поток?) Локализатору, но через мою программу, а не эмулятор.

Может кто-нибудь предложить способ реализации этой функции?

Код слушателя местоположения, который я нашел где-то в сети и пытался:


private LocationListener locationListener;

private MapView mapView;
private MapController mc;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gps); 

    lm = (LocationManager) 
        getSystemService(Context.LOCATION_SERVICE);    

    locationListener = new MyLocationListener();

    lm.requestLocationUpdates(
        LocationManager.GPS_PROVIDER,0,0,locationListener);

    mapView = (MapView) findViewById(R.id.mpview);
    mc = mapView.getController();

}

@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}        

private class MyLocationListener implements LocationListener 
{
    @Override
    public void onLocationChanged(Location locn) {
        if (locn != null) {                
            GeoPoint point = new GeoPoint(
                    (int) (locn.getLatitude() * 1E6), 
                    (int) (locn.getLongitude() * 1E6));
            mc.animateTo(point);
            mapView.invalidate();
        }
    }

    @Override
    public void onProviderDisabled(String provider) {

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onStatusChanged(String provider, int status, 
        Bundle extras) {

    }
}     

Спасибо!

...