web-dev-qa-db-ja.com

GPSを使用する前に、GPSが有効になっているかどうかを確認するにはどうすればよいですか。

私は次のコードを持っていますが、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);
11

これを使用するだけで、GPSの可用性を確認できます

    LocationManager mlocManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);;
    boolean enabled = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
10
Jans

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

    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が有効になっていない場合の推奨事項として、通常、標準では、ユーザーが具体的に有効にできるように、ロケーション設定アクティビティをポップアップするように指定されています...

お役に立てれば。

よろしく!

10
Martin Cazares

私の答えのコードを使用できると思います: ロケーションサービスGPS強制終了

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

1
cYrixmorten