Other Parts Discussed in Thread: CC2564C
CC2564C BT3.0产品已经大规模生产、发现功能是通过这种方式实现的。 CC2564C 具有按钮输入。 按下后、它将启用300的搜索。 与主机连接后、禁止查找。
这样、连接的手机就可以直接连接、这会阻止不允许的手机连接到我的蓝牙设备。 如何通过 BLE 实现此类功能、我将使用 SPPLEDEMO。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,Jesu
感谢您的回复。
我们必须执行两个蓝牙模块、一个经典蓝牙模块、一个双模蓝牙模块。
在经典蓝牙模块(SPPdemo)中、我调用以下 API 实现来启用发现300秒:
GAP_SET_DISCONIAL_Mode (BluetoothStackID、dmDiscoverGeneralableMode、300);
配对成功后、我将在 SNV 中存储连接信息,我调用以下 API 来禁用发现:
GAP_SET_DISCONNICE_Mode (BluetoothStackID、dmNonDiscoverableMode、0);
这样、成功配对的移动电话仍然可以正常连接到蓝牙设备、
如果没有配对的移动电话、则无法找到蓝牙设备。
在双模蓝牙模块,中、我使用 SPPLEDEMO。
SPPLEDEMO 是 SPP + BLE,在 SPP 模式下、我可以使用上述方法来实现相似的功能,
如何在 SPPLE 模式下实现上述功能?
您好!
有两个问题:
1. dmNonDiscoverableMode 不起任何作用, 在 IOS 中使用 lightblue 的测试软件, 请查看以下日志文件:
SPP+LE>
SPP+LE>RegisterSPPLE
已成功注册 SPPLE 服务。
SPP+LE>
SPP+LE>SetDiscoverabilityMode 0
可发现性:非。
SPP+LE>
SPP+LE>SetCBDiscoverabilityMode 0
可发现性:非。
SPP+LE>
SPP+LE>AdvertiseLE 1.
GAP_LE_Advertising_Enable 成功。
SPP+LE>
SPP+LE>
大小为16的 etLE_Connection_Complete。
状态:0x00。
角色:从设备。
地址类型:随机。
BD_ADDR:0x49836B1706DF。
SPP+LE>
大小为16的 etGATT_Connection_Device_Connection:
连接 ID:1.
连接类型:LE。
远程设备:0x49836B1706DF。
连接 MTU:23。
SPP+LE>
SPP+LE>
大小为12的 etGATT_Connection_Device_Disconnection:
连接 ID:1.
连接类型:LE。
远程设备:0x49836B1706DF。
2. IOS 每次都是随机地址,如何使用白名单?
我想实现这个目标。 每次连接后、我都会将 IOS 蓝牙地址保存到白名单中、
然后 、我在连接时使用白名单机制(AddertisingParameters.Connect_Request_Filter = fpWhiteList)、以便 IOS 电话无法连接到我的设备
如果不是白名单。但 IOS 电话连接使用随机地址,每次都会更改该地址。 我可以如何使用白名单机制?
您好!
尝试将下面的调用添加到 SPPLEDemo.c 中的 SetLEDiscoverabilityMode、并告知我它是否正常工作。
SetCBDiscoverabilityMode (TempParam);
我刚刚测试了它、它对我来说很有用。 问题似乎是、它禁用 BLE 的发现、但不禁用 BT 经典的发现、并且 CLI 不区分用于在两者之间禁用它的命令。
请告诉我这是否可以解决您的问题。
Jesu