0

関連するlatとlongを取得し、データベースを更新するアプリケーションを作成しました。問題は、家や商店街のような屋根の下にいると、アプリでGPS検索アイコンが表示され続けることです。

Mylocation()とそのリスナーをトリガーするためにボタンを使用しています。

ボタンには次のものがあります。

locationListener = new MyLocationListener();                        
location.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 5, locationListener);

そしてmylocationlistenerメソッドの下で私は持っています

private class MyLocationListener implements LocationListener {
    @Override
    public void onLocationChanged(Location loc) {
        try {
            Thread.sleep(1000);
            Toast.makeText(getBaseContext(),"Location: Lat:" + loc.getLatitude() + " Lng:" + loc.getLongitude(),Toast.LENGTH_SHORT).show();
            location.removeUpdates(locationListener);
            location = null;
            finish();
          }
            catch (InterruptedException e) {
            e.printStackTrace();
        }
       }

問題なく適切にトーストされた値を取得し、アプリが終了するとGPSアイコンが消えますが、屋根の中にいると、上部のGPSアイコンがGPSを検索し続けます。アイコンは消えません。

これを修正するにはどうすればよいですか?GPS信号が良好である場合、メッセージGPS信号が良好でない場合でも、GPSを開始する条件を設定する必要がありますか。もしそうなら、どのように?

ありがとう!

4

2 に答える 2

1

この質問Android で GPS 信号強度を測定する方法で説明されているように、

したがって、あなたが本当に信号強度を意味していると仮定すると、GpsStatusviaを取得できます。これにより、 を介しLocationManager.getGpsStatus()て衛星のリストが得られgetSatellites()、それぞれに信号対雑音比があります ( getSnr())

于 2013-01-13T12:12:42.690 に答える
0

GPSと同様に、またはGPSの代わりにネットワーク位置情報サービスを使用することを検討できます。タイムアウトを追加することも検討できます。

于 2013-01-13T12:39:33.823 に答える