2017-07-31 9 views
0

SIMカードなしでAndroid 7.1.1を実行しているGoogle Pixel CタブレットがWi-Fiでインターネットに接続されています。私はAndroidのマニフェストに次の権限を設定しました:無効なGPSプロバイダーのリストと同じ有効なGPSプロバイダーのリスト

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-feature android:name="android.hardware.location.gps" /> 

と私は、ユーザーからの許可を要求しています:

ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_FINE_LOCATION); 

私は有効と無効のGPSプロバイダーの一覧を表示、リストが同一であります:

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

List<String> providersEnabled = locationManager.getProviders(true); 
LogHelper.d("location", "Enabled GPS providers:"); 
for (String providerEnabled:providersEnabled) 
    Log.d("location", providerEnabled); 

List<String> providersDisabled = locationManager.getProviders(false); 
Log.d("location", "Disabled GPS providers:"); 
for (String providerDisabled:providersDisabled) 
    Log.d("location", providerDisabled); 

有効GPSプロバイダ:

  • パッシブネットワーク

無効GPSプロバイダ:

  • パッシブ
  • ネットワーク

これはAndroidのバグですか、私はここで何か間違ったことをやっていますか? the documentation for getProviders()を引用

+1

getProviders docs + [すべてがサブセット化されています](https://en.wikipedia.org/wiki/Set_theory) – Selvin

答えて

1

、パラメータは次のとおりです。

ブール:trueの場合は、その後、現在有効になっている唯一のプロバイダが返されます。

したがって、最初のチェックでは有効なプロバイダのみが返されます。 2番目のチェックは、有効かどうかにかかわらず、すべてプロバイダを返します。両方のプロバイダは有効なので、両方のリストに表示されます。

関連する問題