位置情報が有効になっているかを調べたい


Androidで位置情報を利用するアプリを作っているのですが、端末の位置情報を利用する設定がオフになっている場合にダイアログを出す処理を作りたいです。
端末の位置情報が有効になっているかどうかをJavaのプログラムで取得するにはどうしたら良いのでしょうか？




必要なパーミッション(`ACCESS_COARSE_LOCATION` や
`ACCESS_FINE_LOCATION`)があるなら、`LocationManager#isProviderEnabled(providerName)`
で確認できます。

<http://developer.android.com/reference/android/location/LocationManager.html#isProviderEnabled(java.lang.String)>

[code]

    LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    final boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
    final boolean wifiEnabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    
[/code]

あるいは、<https://stackoverflow.com/a/22219239> のように `LOCATION_MODE` を見る方法もあるようです。




必要なパーミッション(`ACCESS_COARSE_LOCATION` や
`ACCESS_FINE_LOCATION`)があるなら、`LocationManager#isProviderEnabled(providerName)`
で確認できます。

<http://developer.android.com/reference/android/location/LocationManager.html#isProviderEnabled(java.lang.String)>

[code]

    LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    final boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
    final boolean wifiEnabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    
[/code]

あるいは、<https://stackoverflow.com/a/22219239> のように `LOCATION_MODE` を見る方法もあるようです。

