检测Android App收到扫描请求时是不是发送BLE扫描响应

Posted

技术标签:

【中文标题】检测Android App收到扫描请求时是不是发送BLE扫描响应【英文标题】:Detect if a BLE scan response is sent when a scan request is received in Android App检测Android App收到扫描请求时是否发送BLE扫描响应 【发布时间】:2017-02-11 06:03:28 【问题描述】:

我为我的手机开发了一个 android 应用程序,其中我在广告包中宣传 13 字节的数据。我已经设置了另一个处于观察者模式的 BLE 设备,它捕获这个广告数据包并发送扫描请求。我想在我的 android 应用程序中检测此扫描请求并发送扫描响应。发送扫描响应后,我想停止广告并关闭手机中的蓝牙。我的手机正在发送扫描响应,但如何检测它以便我可以停止广告。

【问题讨论】:

【参考方案1】:

抱歉,该信息未通过 HCI 层公开。蓝牙控制器只是发送一个扫描响应而不通知主机。

【讨论】:

是否至少没有检测到广告商捕获的请求? HCI 标准中没有定义这样的东西。一些供应商可能为此引入了特定于供应商的事件,但这不是您通常通过 Android 蓝牙 API 获得的。相反,您应该启动与广告商的连接,并通过消息发送它已收到数据。 好的。非常感谢您分享您的知识。我在互联网上进行了很多研究,但没有收到此信息。 @Emil 看起来 HCI 规范定义了一个带有事件代码 0x3E 的“LE 扫描请求接收事件”。请参阅第 2 卷,核心规范的 E 部分,地址为 bluetooth.com/specifications/bluetooth-core-specification 是的!这是蓝牙 5 的新功能。

以上是关于检测Android App收到扫描请求时是不是发送BLE扫描响应的主要内容,如果未能解决你的问题,请参考以下文章

无法检测从android发送的php中的Post参数

如何使用请求库将Payload从另一个Python App发送到Flask应用程序[重复]

在 iOS 上发送 HTTP POST 请求

在 iOS 上发送 HTTP POST 请求

当应用收到通知时,IOS 向 HTTP 服务器发送请求

Android开发:检测手机上是不是安装该App