3

GPS および/または WiFi & モバイル ネットワークの場所が特定されているかどうかを確認しようとしています。私の現在のコードは単に GPS に対してのみ機能し、ネットワーク プロバイダーを含めようとしましたが、次のエラーが発生しました。

最初のエラー

The method isProviderEnabled(String) in the type LocationManager is not applicable for the arguments (String, String)


現在のコード

    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER, LocationManager.NETWORK_PROVIDER)){
            Toast.makeText(this, "GPS is Enabled in your device", Toast.LENGTH_SHORT).show();
        }else{
            displayAlert();
        }

4

2 に答える 2

4

各プロバイダーを個別に確認する必要があります。

if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) ||
    locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
        Toast.makeText(this, "GPS/Network is Enabled in your device", 
            Toast.LENGTH_SHORT).show();
    }else{
        displayAlert();
    }
于 2013-07-11T03:12:36.873 に答える
1

isProvideEnabled(String)のドキュメントを参照すると、パラメーターとして許可される文字列は 1 つだけです。したがって、チェックを個別に行うことができます。

boolean gpsPresent = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean networkProviderPresent = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

次に、@ianhanniballakeが言ったように、または次のように確認できます。

if ( (!gpsPresent) && (!networkProviderPresent) ){
     displayAlert(); // Nothing is available to give the location
}else {
    if (gpsPresent){
        Toast.makeText(this, "GPS is Enabled in your device", Toast.LENGTH_SHORT).show();    
    }
    if (networkProviderPresent ){
        Toast.makeText(this, "Network Provider is Present on your device", Toast.LENGTH_SHORT).show();   
    }
}

お役に立てれば。

于 2013-07-11T03:13:28.363 に答える