На C++ все по команде за ошибки СМС возвращения
- Привет!
Я создаю приложение windows на C++, которое соединяет ПК с мобильным телефоном через bluetooth и winsock. Позволяет вам звонить и отправлять сообщения с мобильного телефона через компьютер.
Я с помощью AT-команд мобильного, чтобы сказать, что я хочу сделать. Сопряжение с мобильным устройством и принудительный вызов с помощью команды At
ATD+420******;работает идеально, но все команды для обработки SMS вроде
AT+CMGL, AT+CMGF, AT+CMGS etc.ошибка возврата.
Вот код, который соединяет ПК с мобильным телефоном через bluetooth и розетку:
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
Я думаю, что проблема здесь, потому что вы не можете отправить sms с громкой связи, но когда я использую другой UUID, он даже не соединяется с мобильным телефоном.
= = = Вот только для информации, как я отправляю и получаю данные с мобильного телефона ===
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. return ~0 } if ((iResult = recv(m_localSocket, recvbuf, recvbuflen, 0)) == SOCKET_ERROR) { // handle error. return ~0 } // Here recvbuf == "\r\nERROR\r\n"
Спасибо Вам за любые советы! Если у вас есть какие-либо вопросы по поводу проблемы, я любезно объясню.
С уважением,
Филипп.
Что я уже пробовал:
Используйте другие телефоны, с другой ОС. < - не получилось.
Использовать другой UUID <- не получилось.
Погуглив много часов, я не нашел никакого решения.