我正在笔记本电脑(Debian 8)上编写QT 5应用程序,如果手机(OnePlus One,Android 5.1)上有新的SMS可用,我想在此通知我。
我设法注册了MAP服务并手动阅读了SMS。为此,我创建了一个套接字。当有新数据可用时,应调用readyRead()
信号。对于手动获取SMS来说,它工作正常。在同一套接字上,我注册了消息通知服务。
我的问题是,当收到新消息时,永远不会发出readyRead()
信号。为了监视数据流,我使用wireshark。 Wireshark展示了该事件。因此,智能手机会将事件发送到便携式计算机,而不发送到启动连接请求的套接字吗?
我从(MAP)规范中获得的注册信息:https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=409110
我的想法是,智能手机和笔记本电脑会创建一个新的 socket ,但不确定。即使是在什么时候,我也不知道如何使用QT访问此套接字。
有人可以帮忙吗?谢谢你。
最佳答案
Over the same socket i register the Message Notification Service.
MAS和MNS应该是两个RFCOMM链接,即您可能有两个套接字,一个用于MAS客户端,另一个用于MNS服务器。
您可以引用MAP规范1.1第6.4.2节中的图6.3。
关于qt - 蓝牙:如何从MAP读取 “Message Notification Service”(MNS)中的消息? QT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38375525/