我正在用BlueZ堆栈(最新版本,5.39)在Linux上用C实现ANCS客户端。到目前为止,我可以设置BLE广告数据与服务孤独UUID提供的苹果。
我的设备确实显示在iPhone (iOS 9)设置中。我也可以连接到设备,连接非常不稳定,这意味着,有时过一段时间后,当我关闭iPhone上的蓝牙设置子菜单时,连接就终止了。它也没有连接,在断开连接后,设备不会出现在iPhone上的“我的设备”下。
我看了看电视,显然只是读取了一堆ATT数据,然后停了下来:
Pastebin链接,因为它在这里没有正确地格式化它
在连接终止后,is输出pastebin的下半部分。
现在,我的问题是,创建接收来自iOS设备的通知的ANCS客户端下一步是什么?我读过无数篇关于BLE和ANCS的文章和示例代码,但我仍然一无所知。
我是否必须在C代码中打开L2CAP套接字才能接受来自iPhone的连接?我已经试过了,没起作用。我还试着用gatttool连接到iPhone,但它说“资源或设备很忙”。
我非常感谢一些关于下一步该做什么的正确指示。
发布于 2016-04-29 15:41:36
好吧,经过大量的研究,我终于可以用自己的问题来回答:
在我提出这个问题之前,我已经完成了以下工作:
在那之后有什么必要:
我们肯定应该在BlueZ源代码中查看tools/btgatt-client.c &tools/btgatt server.c。它准确地展示了如何打开套接字(使用sockopt等)。
希望这能帮助那些像我一样努力解决这个问题的人。
https://stackoverflow.com/questions/36775525
复制相似问题