我在Android 3上有一台Google Pixel 10a XL,它无法使用蓝牙2.0与蓝牙SPP模块建立良好的蓝牙串行连接。但是,我可以连接到带有蓝牙 1.2 的模块。我无法确定这是否与所有Android 10有关,还是与Pixel 3系列有关。
我正在尝试通过蓝牙从GPS接收器获取GPS位置数据。当我尝试使用createInsecureRfcommSocketToServiceRecord((建立连接时,串行连接实际上会出现 1-5 秒。我确实从GPS接收器获得了一些数据,但是缺少块。然后数据停止流动。除了我的应用程序之外,我还用其他几个蓝牙串行终端程序对此进行了测试,它们都有相同的结果 - 我得到一些数据,然后它停止了。
我可以将相同的蓝牙模块与运行Android 9的不同Android设备一起使用,并且效果很好。我也可以从 Windows 连接到这个蓝牙模块,它也可以正常工作.
我有第二个较旧的蓝牙模块(运行蓝牙v1.2(,令人惊讶的是,它实际上与Pixel配合使用正常。
有没有人看到过Android 10上的蓝牙串行问题?
Android 10 的更改是,除了权限之外,您还需要启用您的位置才能连接到某些 BLE 设备。我不确定这是否会对您有所帮助,但可以为您提供有关您遇到的问题的一些信息。
"某些电话、蓝牙、Wi-Fi API 需要 FINE 位置权限 如果您的应用以 Android 10 或更高版本为目标平台,则必须具有 ACCESS_FINE_LOCATION 权限,才能在 Wi-Fi、Wi-Fi 感知或蓝牙 API 中使用多种方法。以下各节列出了受影响的类和方法。
https://developer.android.com/about/versions/10/privacy/changes