2

我们是一群计算机科学专业的学生,​​目前正在作为我们硕士的一部分从事一个项目。

我们的问题如下。

我们正在开发一款需要设备交换少量数据的 Android 应用。这需要在没有移动连接或现有 WiFi 网络的情况下工作,例如使用蓝牙、WiFi 直连等。

我们已经研究过蓝牙智能,它允许设备运行发送 31 字节数据的广告模式,这足以满足我们的需求。但它仅在 Android 5.0 中受支持,因此这严重限制了我们的可用性。

消息确认和错误检查是一个优点,但不是必需的。因此,Udp 连接是可能的。

我们能找到的所有解决方案要么涉及用户主动接受对等请求,这是不可接受的,因为可能有数百台设备相互通信,或者使设备生根。

简而言之,我们正在寻找一种设备广播少量数据的方法,最少大约 24 个字节。除了启动应用程序之外,用户无需执行任何操作。

4

3 回答 3

2

由于我没有足够的声誉来回复您的评论,我将不得不写一个回复作为答案,并希望您阅读它。

To Mach:虽然 4.3 确实可以充当中央设备并充当客户端,但5.0是引入了设备充当外围设备并充当服务器并将信息推送出去的能力的 android 版本. 这是我阅读的大部分内容让我相信的。我错过了什么吗?如果中央设备能够发布信息,那么中央设备和外围设备有什么区别?

于 2015-03-12T10:13:04.393 回答
1

蓝牙智能又名蓝牙低功耗 (BLE) 在配对时不需要用户交互,并且受 API 级别 18 支持,而不是 21。BLE 确实要求手机具有蓝牙 4.0 硬件。

快速扫描和连接时间(<5ms)也是低功耗蓝牙的一大优势。

通过在服务器和客户端之间切换,可以传递消息。如今,大多数 Android 蓝牙堆栈都允许 8 个或更多同时 GATT 连接,这使得拥有相当有效的网状网络成为可能。

今天没有针对您正在尝试做的事情的预定义 GATT 配置文件,但是有需要并且希望您能提出一个好的解决方案。

祝你好运!

于 2015-03-10T12:23:56.323 回答
0

我正在和你们做类似的项目。然后我发现了这个:

https://stackoverflow.com/a/5886544/2989374

他们正在使用createInsecureRfcommSocketToServiceRecordlistenUsingInsecureRfcommWithServiceRecord

经过测试,我能够在两个未配对的设备之间发送消息。

希望这会有所帮助。

于 2015-04-05T13:53:15.343 回答