如何让 BluetoothAdapter.startDiscovery() 在我的 Android 10 设备上运行?

How do I get the BluetoothAdapter.startDiscovery() working on my Android 10 device?

我正在尝试通过我的华为 P30 (Android 10) 获得任何蓝牙设备。当我尝试使用 bluetoothAdapter.startDiscovery() 时,它总是 returns 错误。我发现问题是权限 ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION 不起作用。因此,我尝试使用此 link 中描述的所有解决方案:,但不幸的是,没有任何效果,应用程序没有开始扫描。 最后,我获得了权限,但功能仍然 returns false 并且发现没有开始......有人为我提供解决方案吗?

我在 Android 10 华为设备上也遇到了同样的问题。即使我没有在应用程序中使用定位服务。除了在 AndroidManifest.xml 中添加 ACCESS_FINE_LOCATION 我还必须

  1. 授予应用定位权限。
  2. 在系统设置中开启定位服务。当然,哪一个允许始终在位置访问一堆无法在 OS.
  3. 中禁用的服务和应用程序

最好知道此行为是针对 Android 10 一般情况还是特定的华为怪癖。