蓝牙4.1引入了互联网协议支持配置文件,该配置文件“建议支持通过蓝牙低功耗传输在设备之间交换IPv6数据包”。此配置文件绕过常规GAP和GATT协议,并直接向下转到L2CAP层。它定义了“节点”和“路由器”角色。如何在Android端实现?
file:///Users/shreyashirday/Downloads/INT_IP_Support_Profile_SPEC_V1.0.0%20(1).pdf这对概述非常有用,但我甚至不确定当前的Android是否支持此功能。
答案 0 :(得分:3)
我也很好奇某些Android设备是否支持此功能。
至于个人资料,了解它的最佳方式是以下2个RFC:
https://tools.ietf.org/html/rfc4944
https://tools.ietf.org/html/rfc7668
第一个描述了6LoWPAN - 低功耗网络上的IPv6。第二部分描述了如何通过蓝牙LE专门实现6LoWPAN。 Bluetooth SIG IPSP规范详细介绍了实现细节,并提供了这两个RFC的详细信息框架。
目前可用的两种实现似乎是在Linux v.3.18或更新版本上运行的BlueZ,以及Nordic Semiconductor nRF52开发板。如果有更多可用的实现,我想听听它们。
答案 1 :(得分:0)
由于IPSP需要基于L2CAP信用的流量控制模式,也称为LE数据通道,因此在Android的蓝牙堆栈中必须支持此功能。它有一段时间支持blueZ。
如果是这种情况,可能会有一个内部实现,它具有对堆栈的低级访问权限。如果没有,Android将需要在更高级别的Java API中支持它。
因此,您最好的选择是获取/找到可以运行blueZ的Android设备。在那里,如果不完整,IPSP至少在起作用,参见例如https://github.com/NordicSemiconductor/Linux-ble-6lowpan-joiner/blob/master/readme.md