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

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

我不在乎:

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

推荐答案

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

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

Android相关问答推荐

如何将子零部件的大小调整为可以调整大小的父组件大小?

Android意图过滤器不限制应用程序仅处理YouTube链接

合成-删除图像的部分背景

Android 14上的慢速意图广播交付

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

Android Jetpack Compose调用view-model函数仅一次

Jetpack编写错误(java.lang.NoSuchMethodError:无接口方法startRestartGroup)

在Android中使用Room从SQlite数据库中获取实体列表的正确方式是什么?

jetpackcompose-如何对解析后的复杂对象进行状态提升?

可以';t将数据插入房间数据库

错误:参数的类型必须是用@Entity注释的类或其集合/array. java.lang.String tocd);

列语义在列中的第一个元素之后读取

Android Studio XML 文本在 ConstraintLayout 中不居中

CoroutineScope 与挂起函数

Jetpack Compose 惰性列在单个项目更新时重新组合所有项目

Jetpack Compose - 每次点击按钮都不起作用

为 AlertDialog 的消息文本设置自定义字体

如何将房间数据库导出到 .CSV

Android:在模块 jetified-play-services-measurement 和 jetified-play-services-measurement-impl 中发现重复类

如何获取 Android Preferences DataStore 的所有键