Android Q隐私:更改相机和连接
本文档描述了访问摄像机和连接信息的几个限制。这些更改有助于保护用户的隐私。
其中一些更改会影响在Android Q上运行的所有应用,而其他更改仅会影响针对Android Q的应用。
影响所有应用的变化
以下更改会影响在Android Q上运行的所有应用,即使它们定位到Android 9(API级别28)或更低级别。
访问所有相机信息需要获得许可
Android Q会更改getCameraCharacteristics() 默认情况下该方法返回的信息范围 。特别是,您的应用必须具有CAMERA 权限才能访问此方法的返回值中包含的潜在特定于设备的元数据。
如果您的应用没有CAMERA权限,则无法访问以下字段:
- ANDROID_LENS_POSE_ROTATION
- ANDROID_LENS_POSE_TRANSLATION
- ANDROID_LENS_INTRINSIC_CALIBRATION
- ANDROID_LENS_RADIAL_DISTORTION
- ANDROID_LENS_POSE_REFERENCE
- ANDROID_LENS_DISTORTION
- ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE
- ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE
- ANDROID_SENSOR_REFERENCE_ILLUMINANT1
- ANDROID_SENSOR_REFERENCE_ILLUMINANT2
- ANDROID_SENSOR_CALIBRATION_TRANSFORM1
- ANDROID_SENSOR_CALIBRATION_TRANSFORM2
- ANDROID_SENSOR_COLOR_TRANSFORM1
- ANDROID_SENSOR_COLOR_TRANSFORM2
- ANDROID_SENSOR_FORWARD_MATRIX1
- ANDROID_SENSOR_FORWARD_MATRIX2
启用和禁用Wi-Fi的限制
在Android Q上运行的应用无法启用或停用Wi-Fi。该 WifiManager.setWifiEnabled()方法总是返回false。
如果需要,请使用设置面板提示用户启用和禁用Wi-Fi。
影响针对Android Q的应用的更改
以下更改仅在针对Android Q时影响应用。
Wi-Fi网络配置限制
为了保护用户隐私,现在将Wi-Fi网络列表的手动配置限制在系统应用程序中。如果您的应用针对Android Q,则以下方法不再返回有用数据:
- 该getConfiguredNetworks()方法始终返回一个空列表。
- 返回一个整数值-每个网络操作方法addNetwork()和 updateNetwork()-always返回-1。
- 每个网络操作,返回一个布尔值- ,removeNetwork(), reassociate(),enableNetwork(),disableNetwork(),reconnect()和 disconnect()-always回报false。
如果您的应用需要连接到Wi-Fi网络,请使用以下备用方法:
- 要触发与Wi-Fi网络的即时本地连接,请使用 WifiNetworkSpecifier标准NetworkRequest对象。
- 要添加Wi-Fi网络以考虑为用户提供Internet访问,请使用WifiNetworkSuggestion对象。您可以分别通过调用WifiManager.addNetworkSuggestions()和 添加和删 除出现在自动连接网络选择对话框中的网络WifiManager.removeNetworkSuggestions()。这些方法不需要任何位置权限。
电话,Wi-Fi,蓝牙API所需的精确位置许可
除非您的应用具有此ACCESS_FINE_LOCATION权限,否则在Android Q上运行时,您的应用无法在Wi-Fi,Wi-Fi Aware或蓝牙API中使用多种方法。以下列表显示了受影响的方法。
注意:如果您的应用在Android Q上运行但针对的是Android 9(API级别28)或更低级别,则只要您的应用具有ACCESS_COARSE_LOCATION或拥有该ACCESS_FINE_LOCATION权限,您就可以使用受影响的API 。
电话
- TelephonyManager
- getCellLocation()
- getAllCellInfo()
- requestNetworkScan()
- requestCellInfoUpdate()
- getAvailableNetworks()
- getServiceStateForSubscriber
- getServiceState()
- TelephonyScanManager
- requestNetworkScan()
- PhoneStateListener
- onCellLocationChanged()
- onCellInfoChanged()
- onServiceStateChanged()
- NetworkScanCallback
- onResults()
无线上网
- WifiScanner
- startScan()
- WifiManager
- startScan()
- getScanResults()
- getConnectionInfo()
- getConfiguredNetworks()
- WifiAwareManager
- WifiP2pManager
- WifiRTTManager
蓝牙
- BluetoothAdapter
- startDiscovery()
- startLeScan()
- LeScanCallback()