ade*_*111 1 android google-play-services google-nearby google-nearby-connections
我正在开发一个使用附近连接 API 和基本 P2P 策略的应用程序。突然间,很奇怪的是,我无法在我的 Pixel 3a 上宣传和发现配备最新 Android 12 和 Play 服务的设备。OnFailureListeners抛出这些异常:
8037: unknown status code: 80378038: unknown status code: 8038事实上,它们在文档和源代码中找不到。我还检查了谷歌的“剪刀石头布”官方示例,它抛出了相同的错误代码。
当然,我重新安装了应用程序并重新启动并更新了我的手机。编辑:我也恢复了出厂设置,但没有帮助。但当我使用 Android Flash Tool 降级到最新的 Android 11 后,它又开始工作了。此外,使用不同的手机在 Android 11、10 和 9 上一切仍然运行良好。
有什么想法导致这个问题吗?过去两周一直运行良好,今天停止运行。我相信它需要对源代码进行一些深入的调查(Xlythe,如果我可以寻求你的帮助,那就太好了)。
经过一段时间我终于找到了解决方案。看起来附近的连接(所有附近的连接?)在 Android 12 上有一个严重的错误,该错误的发生是不确定的(API 可以正常工作几周,然后突然会在接下来的几周内抛出这些错误)。
此错误与 Android 12与蓝牙相关的功能更改有关。引用:
Android 12 引入了 BLUETOOTH_SCAN、BLUETOOTH_ADVERTISE 和 BLUETOOTH_CONNECT 权限。这些权限使面向 Android 12 的应用程序可以更轻松地与蓝牙设备交互,特别是对于不需要访问设备位置的应用程序。
换句话说,一些蓝牙权限现在是旧版的,并且有一些新的权限是使 API 正常工作所必需的。您需要在代码中处理这两种情况(Android 12 之前和之后)。
因此,这是从错误代码到清单权限的快速“映射器”:
Error code 8037发现时 - 您尚未授予权限BLUETOOTH_SCANError code 8038做广告时 - 您尚未授予许可BLUETOOTH_ADVERTISEError code 8039(这也是一个新的)而onEndpointFound- 你还没有授予许可BLUETOOTH_CONNECT有关如何正确实施新权限的更多信息,请参阅文档。
我仍在等待 Google 在下一次附近 API 更新中修复它,因为这是一个解决方法。在代码中添加适当的错误消息可能需要做一些工作,但如果 Android 12 更新后仍然需要其他权限,我也会进行修改。
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |