开始看bluez的API时,还真是丈二和尚摸不着头脑。看了相关资料才知道是采用DBus机制,实现进程间的通信,而不是之前知道的直接调用那种。
因为没什么经验,所以花很长时间,才搞清楚了,用bluez怎么实现蓝牙配对。
在网上找了很多资料,完全没有找到bluez4蓝牙配对的相关资料。接下来只能通过各种各样相关信息,综合起来考虑。
最后才发现bluez是
采用agent的方式来实现配对,并且bluez4是没有实现这个agent的,
需要自己实现。我一开始拼命的分析bluez的源码,希望找到这部分实现,可想而知了。
其实在bluez的测试代码里,有给出一个简单的agent实现。但是如果不清楚是采用agent的方式,是很难看明白是干嘛用的,可能还适得其反。
agent实现:
在bluez-4.101的源码目录下,目录test中有agent.c。
因为编译bluez的时候,并没有生成可执行程序,所以需要单独编译一下agent.c。
执行:agent --adapter hci0 --path /test/agent 0000
选项:
--adapter 蓝牙适配器
--path
object path (自定义)
0000
这个就是pin_code了