デバイスの設定で、GPSシステムではなくWiFiネットワークを使用して位置情報を取得するように設定されている場合があります。そのため、位置情報は開かれますが、アプリをチェックするとfalseが返されますGPS_PROVIDER
。
これに対する適切な解決策は、GPSとネットワークの両方をチェックすることです。
を使用して確認したい場合Settings
:
private boolean checkIfLocationOpened() {
String provider = Settings.Secure.getString(getActivity().getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (provider.contains("gps") || provider.contains("network"))
return true;
}
// otherwise return false
return false;
}
LocationManager
:を使用してそれを実行したい場合
private boolean checkIfLocationOpened() {
final LocationManager manager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) || manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
return true;
}
// otherwise return false
return false;
}
あなたはここで私の答えで完全な詳細を見つけることができます。