我正在用ESP32做一个项目,涉及到与移动应用程序的通信.目前我使用BluetothSerial(构建在Classic上)只是为了调试,但我计划制作一个专用的移动应用程序,以拥有与项目相关的所有类型的数据,我将通过双工通信从控制器收集这些数据,可能是通过命令-响应接口. 我想知道的是,什么样的蓝牙更适合与Android应用程序进行通信?我想要考虑的事情:

  • 在范围内时自动连接功能.
  • 太有可能了.
  • 射程.
  • 硬件要求(如定时器等)
  • 数据安全
  • 到IOS的端口功能.

我不在乎:

  • 电池使用量(如果实际差异很小)
  • 传输速度(我每秒只传输一次2-3kb的数字数据)

推荐答案

这没有太大的不同,因为你上面列出的大多数事情都可以通过这两种方法来实现,所以归根结底是你的个人偏好和你对无线技术的现有熟悉程度.然而,我个人会 Select BLE,因为与classic 的蓝牙不同,BLE在Android和iOS的应用程序和资源方面都要成熟得多.与classic 的蓝牙相比,当涉及到BLE时,你最终会发现更多的文档和源代码.此外,正如Michael Kotzjan提到的,classic 蓝牙在iOS上相对较新,有一些限制.

下面的链接可能会给你一个正确的方向:

Android相关问答推荐

Android编写动画在发布版本中崩溃

ENV变量在gradle进程中没有更新

如何完全隐藏的元素堆叠在CardView?

Android:MethodHandle. invoke和MethodHandle. invokeExact仅从Android O( - min—api 26)开始支持

约束布局:垂直链中的视图应将内容包裹到空间的1/3

避免在按下肯定按钮时自动取消AlertDialog

Composable不会以LocalConext.Current作为活动呈现

如何使用Jetpack Compose实现此底表?

尽管我们不再使用GCM SDK,但应用程序已被标记为使用GCM SDK

Play store 的 Play 完整性与 Firebase 应用判断 Play 完整性

可组合函数无限地从视图模型获取值

从 Jetpack Compose 中的图像中删除默认高度

当 Jetpack Compose 中的第一个文本很长时,将省略号添加到第一个文本

Jetpack Compose:在屏幕外制作长水平图像的动画

如何在 Jetpack Compose 中对齐按钮底部中心?

使用默认使用 RTL 语言的项目本地化 android 应用程序

Int 传递给 Intent 但Android工作室说我传递了一个字符串

为什么我不能直接记住 mutableStateOf 可组合函数?

基线配置文件 x R8/Proguard

单击后退按钮时,应用程序会在一秒钟后崩溃