11

私は次のコードを持っていますが、GPS に非常に長い時間がかかることがあるため、良くありません。

どうすれば次のことができますか:

  1. GPS が有効になっているかどうかを確認する
  2. 有効になっている場合は GPS を使用し、それ以外の場合はネットワーク プロバイダーを使用します。
  3. GPS に 30 秒以上かかる場合は、ネットワークを使用してください。

時間または Thread.sleep を使用して独自のロジックでこれを行うことができますが、より安定した方法があると思います

// Acquire a reference to the system Location Manager
            LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

            // Define a listener that responds to location updates
            LocationListener locationListener = new LocationListener() {
                public void onLocationChanged(Location location) {
                  // Called when a new location is found by the network location provider.
                    locationCallback(location);
                }

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

                public void onProviderEnabled(String provider) {}

                public void onProviderDisabled(String provider) {}
              };

            // Register the listener with the Location Manager to receive location updates
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
4

3 に答える 3

11

標準的な方法はありません。次の方法を使用して自分で行う必要があります。

    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
        //Do what you need if enabled...
    }else{
        //Do what you need if not enabled...
    }

そしてマニフェストのこの許可:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

GPS が有効になっていない場合の推奨事項として、通常、標準では位置設定アクティビティをポップアップするように指定されているため、ユーザーはそれを具体的に有効にすることができます...

お役に立てれば。

よろしく!

于 2013-10-14T20:39:12.587 に答える
10

これを使うだけでGPS空き状況が確認できる

    LocationManager mlocManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);;
    boolean enabled = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
于 2013-10-14T20:38:45.367 に答える
1

私の回答でコードを使用できると思います:位置情報サービス GPS 強制終了

これは、非常に便利な GPS の最初の修正と場所の変更のためのコールバック メソッドを提供します。これにより、GPS が最初の修正を取得するのに時間がかかりすぎる場合に、ネットワークに切り替えるように GPSTracker の実装を簡単に変更できます。

于 2013-10-14T20:42:16.410 に答える