Android 10.0相关权限的变更(使用WiFi Direct必须打开定位)

Android 10.0中对隐私权(权限)做了变更。这里总结一些与 WLAN 相关的。
1、对直接访问已配置的 WLAN 网络实施了限制
如果应用以 Android 10 或更高版本为目标平台,并且应用不是系统应用或 DPC,则下列方法不会返回有用数据:

  • getConfiguredNetworks() 方法始终返回空列表。
  • 每个返回整数值的网络操作方法(addNetwork() 和 updateNetwork())始终返回 -1。
  • 每个返回布尔值的网络操作(removeNetwork()、reassociate()、enableNetwork()、disableNetwork()、reconnect() 和 disconnect())始终返回 false。
    2、一些WLAN API 需要精确位置权限
    WLAN
  • WifiManager
    startScan()
    getScanResults()
    getConnectionInfo()
    getConfiguredNetworks()
  • WifiAwareManager
  • WifiP2pManager
  • WifiRttManager

其中WiFi Direct 功能必须开启 Location(GPS定位) 才可以使用。如果定位未打开,则WiFi Direct栏处于灰色无法使用状态。
android/packages/apps/Settings/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java

public void updateState(Preference preference) {
    super.updateState(preference);
    preference.setEnabled(mLocationManager.isLocationEnabled() && mWifiManager.isWifiEnabled());
}

官方介绍

关注公众号,获取更多开发必备知识
在这里插入图片描述

你可能感兴趣的:(WIfi,Android)