GPS не работает на моем телефоне Android - PullRequest
0 голосов
/ 23 марта 2011

У меня есть рабочее приложение на эмуляторе, но когда я пробую на телефоне, его нет.На эмуляторе я отправляю поддельную позицию на телефон, и он получает ее без проблем с этим кодом:

private class GPSListener implements LocationListener{
    private ProgressDialog waitingDialog;
    public GPSListener(Context c) {
        this.waitingDialog = ProgressDialog.show(c, "", c.getString(R.string.sWaitingMessage), true);
    }
    @Override
    public void onLocationChanged(Location loc){
        int longitude = (int) Math.round(loc.getLongitude() * 1000000);
        int latitude = (int) Math.round(loc.getLatitude() * 1000000);
        this.waitingDialog.dismiss();
        GeoPoint currentLocation = new GeoPoint(latitude, longitude);
        GPSPosition.this.whenPositionFound(currentLocation);
    }
    @Override
    public void onProviderDisabled(String provider){}
    @Override
    public void onProviderEnabled(String provider){}
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {}
}

Однако, когда я пытаюсь на моем телефоне, onLocationChanged () никогда не вызывается.Я активирую поиск GPS с этим:

    LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    GPSListener gpsListner = new GPSListener(c);
    locManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, gpsListner);

и вот мои журналы, полные этого:

03-23 14:04:28.411: VERBOSE/GpsLocationProvider(148): SV count: 0 ephemerisMask: 0 almanacMask: ffffffff
03-23 14:04:28.411: DEBUG/RPC(148): written RPC packet size: [24]
03-23 14:04:28.421: DEBUG/RPC(148): read RPC packet
03-23 14:04:28.431: DEBUG/RPC(148): read RPC packet size: [284]
03-23 14:04:28.431: VERBOSE/libgps(148): DeferredActionThread pthread_cond_wait returned
03-23 14:04:28.431: DEBUG/RPC(148): written RPC packet size: [24]
03-23 14:04:28.431: DEBUG/RPC(148): read RPC packet
03-23 14:04:28.431: DEBUG/RPC(148): read RPC packet size: [284]
03-23 14:04:28.431: VERBOSE/libgps(148): DeferredActionThread pthread_cond_wait returned
03-23 14:04:28.431: DEBUG/RPC(148): written RPC packet size: [24]
03-23 14:04:28.441: DEBUG/RPC(148): read RPC packet
03-23 14:04:28.441: DEBUG/RPC(148): read RPC packet size: [284]
03-23 14:04:28.441: VERBOSE/libgps(148): DeferredActionThread pthread_cond_wait returned
03-23 14:04:28.441: DEBUG/RPC(148): written RPC packet size: [24]
03-23 14:04:28.451: DEBUG/RPC(148): read RPC packet
03-23 14:04:28.451: DEBUG/RPC(148): read RPC packet size: [284]

Что я делаю не так?Я пробовал внутри / снаружи, Google Map очень быстро и быстро находит меня даже в моем доме.

1 Ответ

0 голосов
/ 23 марта 2011

Правильное определение координат GPS всегда является проблемой в Android.Попробовав много вещей, я наконец-то увидел, как приложение для камеры Android встраивает координаты в кликнутое изображение.Лучше всего зарегистрироваться на NETWORK_PROVIDER и GPS_PROVIDER и оставить minDistance равным 0 при запросе обновлений местоположения.

Обычно для определения местоположения GPS требуется некоторое время, поэтому, если что-то в вашей деятельности зависит от местоположения, проверяйте местоположение после, скажем, каждые 250 мс.

Чтобы узнать местоположение, сначала проверьте, есть ли у вас починка от GPS, а затем от сетевого провайдера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...