通过AT Command& amp; S发送短信蓝牙不适用于C ++

时间:2017-07-12 13:11:05

标签: android c++ bluetooth winsock at-command

我正在创建一个应用程序,它可以从PC上提供所有功能,如电话设备。

手机通过蓝牙和winsock与PC连接,拨号号码与AT命令ATD工作没问题,但所有其他命令的外观都是这样的:

BTMobileApp DEBUG: WINSOCK: 'send' Return Code: 0

BTMobileApp DEBUG:    Bytes Sent: AT+CMGL

BTMobileApp DEBUG: WINSOCK: 'recv' Return Code: 0

BTMobileApp DEBUG:    Data Received: 

+CME ERROR: 0

返回错误代码意味着'

  

手机故障

AT命令的语法(/ r | / n)肯定是正确的。不知道问题出在哪里。

这是代码的重要部分:

SOCKADDR_BTH RemoteEndPoint;
RemoteEndPoint.port = 0;
RemoteEndPoint.addressFamily = AF_BTH;
RemoteEndPoint.btAddr = // BT device address
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.
}

char recvbuf[DEFAULT_BUFLEN] = "";
const char *sendbuf = "AT+CMGL\r";
int len = (int)strlen(sendbuf);
if ((iResult = send(m_localSocket, sendbuf, len, MSG_OOB)) == SOCKET_ERROR)
{
    // handle error.
}

if ((iResult = recv(m_localSocket, recvbuf, recvbuflen, 0)) == SOCKET_ERROR)
{
    // handle error.
}

- 有人可以给我一些建议如何让AT命令工作吗?

我试图解决这个问题大约两个星期,而且我已经厌倦了解决这个问题。 谢谢。

0 个答案:

没有答案