首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANCS客户端:接收通知的基本程序是什么?

ANCS客户端:接收通知的基本程序是什么?
EN

Stack Overflow用户
提问于 2016-04-21 16:28:06
回答 1查看 2.2K关注 0票数 3

我正在用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,但它说“资源或设备很忙”。

我非常感谢一些关于下一步该做什么的正确指示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-29 15:41:36

好吧,经过大量的研究,我终于可以用自己的问题来回答:

在我提出这个问题之前,我已经完成了以下工作:

  1. 设置广告数据以发送ANCS的主要服务UUID。

在那之后有什么必要:

  1. 停止蓝牙守护进程(您也可以在设置广告数据之前停止它,但据我所知,它必须在某个时候运行以启动一些内核模块)。
  2. 用CID创建L2CAP套接字(ATT的通道标识符4)。安全级别必须是中等的,这样内核就会自动与iPhone配对。
  3. 绑定/侦听/接受以等待来自iOS-设备的连接
  4. 写入/读取类似于蓝牙规范中定义的ATT消息

我们肯定应该在BlueZ源代码中查看tools/btgatt-client.c &tools/btgatt server.c。它准确地展示了如何打开套接字(使用sockopt等)。

希望这能帮助那些像我一样努力解决这个问题的人。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36775525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档