C++所有 AT 命令的短信返回错误 |PC<->通过蓝牙和winsocket的移动连接
C++ all AT command's for SMS return's ERROR | PC<->Mobile connection via bluetooth & winsocket
我正在C++中创建Windows应用程序,该应用程序通过蓝牙和Winsock将PC与移动设备连接起来。允许您通过计算机从移动设备拨打和发送消息。
我正在使用 AT 命令告诉移动设备我想做什么。 与移动设备配对并使用 at 命令强制呼叫
ATD+420******;
工作完美,但所有处理短信的命令,如
AT+CMGL, AT+CMGF, AT+CMGS etc.
返回的错误。
这是通过蓝牙和插座将PC与移动设备连接的代码:
SOCKADDR_BTH RemoteEndPoint;
RemoteEndPoint.port = 0;
RemoteEndPoint.addressFamily = AF_BTH;
RemoteEndPoint.btAddr = m_foundDevices[m_deviceIndex].Address.ullLong;
RemoteEndPoint.serviceClassId = HandsfreeServiceClass_UUID;
int BTHAddrLength = sizeof(RemoteEndPoint);
// Create the socket.
if ((m_localSocket = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM)) == INVALID_SOCKET)
{
// handle error.
}
// Connect the socket.
if ((iResult = connect(m_localSocket, (SOCKADDR *)&RemoteEndPoint, sizeof(RemoteEndPoint))) == INVALID_SOCKET)
{
// handle error.
}
通知行
RemoteEndPoint.serviceClassId = HandsfreeServiceClass_UUID
我认为问题就在这里,因为您无法从免提发送短信,但是当我使用另一个UUID时,它甚至没有与移动设备配对。
=== 这里仅供参考,我如何从移动设备发送和接收数据 ===
char recvbuf[DEFAULT_BUFLEN] = "";
const char *sendbuf = "AT+CMGLr";
int len = (int)strlen(sendbuf);
if ((iResult = send(m_localSocket, sendbuf, len, MSG_OOB)) == SOCKET_ERROR)
{
// handle error. return ~0
}
if ((iResult = recv(m_localSocket, recvbuf, recvbuflen, 0)) == SOCKET_ERROR)
{
// handle error. return ~0
}
// Here recvbuf == "rnERRORrn"
谢谢你的任何建议!如果您对问题有任何疑问,我会善意地解释。 问候 菲 利 普。
我发现,问题在于为连接指定UUID。
我用了RemoteEndPoint.serviceClassId = HandsfreeServiceClass_UUID;
事情就是这样,你不能从免提发送短信,你可以打电话,所以有什么建议我应该使用哪个UUID,所以短信AT命令应该有效吗?
谢谢。
相关文章:
- 当套接字连接断开时检测C/C++Unix
- EASTL矢量<向量<int>>连续的
- 无法在windows上使用mingw将sqlite3与c连接
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 无法在C++中建立与MySQL数据库的连接
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在 libcurl 连接池中预创建连接
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- libcurl 和 DNS ttl 中的内部连接管理
- 如何应用 libcurl 的持久连接选项
- 提升 ASIO - io_service 不要等待连接到线程
- WinSock2:connect() 提供"连接被拒绝"