启用的 GPS 提供商列表与禁用的 GPS 提供商列表相同

List of enabled GPS providers same as list of disabled GPS providers

我有一台 Google Pixel C 平板电脑 运行 Android 7.1.1,没有通过 WiFi 连接到互联网的 SIM 卡。我在我的 Android 清单中设置了以下权限:

<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(),参数为:

boolean: if true then only the providers which are currently enabled are returned.

因此,您首先 returns 仅检查已启用的提供商。您的第二次检查 returns 所有 提供程序,无论它们是否启用。由于两个提供程序都已启用,因此它们出现在两个列表中。