我对蓝牙的理解(很可能是错误的)是,为了通信,两个蓝牙设备必须是微微网的一部分。为了创建微微网,这两个设备执行配对,并选择用于通信的公共无线电信道。
Android为两个设备提供了一种通过使用不安全的RFCOMM连接进行通信的方法,而不需要配对。
既然这两个设备没有共同的信道协议,它们如何能够交换数据包?
发布于 2015-05-11 12:35:46
引用官方的Android BT规范:
记住,配对和连接是有区别的。配对意味着两个设备都知道对方的存在,拥有一个可用于身份验证的共享链接密钥,并且能够彼此建立加密连接。连接意味着设备目前共享一个RFCOMM信道,并且能够相互传输数据。当前的Android蓝牙API要求在建立RFCOMM连接之前对设备进行配对。(当您启动与蓝牙API的加密连接时,将自动执行配对。)
对于引擎盖下的RFCOMM,您应该查看RFCOMM规范
发布于 2015-05-12 16:38:42
Android不安全与安全连接的实际答案是,配对(对于蓝牙v2.1 +来说是强制性的)可以是“未经验证的”和“认证的”。基本上,自动配对过程创建“未经验证的”配对,而用户交互配对过程创建“认证”配对。蓝牙连接对两者都是完全相同的。这只是一个简单的标志,反映了出现的配对类型。通常,没有键盘或显示器的嵌入式设备将不得不使用"Just Works“自动配对方法,并将生成”未经验证的“配对。
由于蓝牙v2.1,所有连接都必须配对(除了仍然支持的遗留连接),所使用的配对方案由两个设备的公开IO功能决定。有一个查找表来确定:只工作、数字比较或Passkey条目(与旧的引脚代码不同)。
https://stackoverflow.com/questions/30167250
复制相似问题