2015-05-13 2 views
0

Я пытаюсь отправить AT-команды с моего компьютера (ubuntu 13.04) на свой телефон (Android 5.1) через Bluetooth. Я хочу прочитать SMS.Отправить AT-команду через bluetooth с помощью python

я получить МАС-адрес моего телефона с:

hcitool scan 

Я просмотреть все доступные сервисы на устройстве с:

sdptool browse XX:XX:XX:XX:XX:XX 

Я получаю хороший RFCOMM канал для SMS/услуги MMS и теперь я пытаюсь отправить команду AT.

Я попытался с pySerial со связанным и подсоединенного RFCOMM на мой телефон, но нет ответа:

import serial 

phone = serial.Serial('/dev/rfcomm0', 115200, timeout=2) 
phone.write(b'AT\r') 
data = phone.readall() 
print data 

Я попытался один и тот же код на последовательный порт USB и у меня есть ответ:

import serial 

phone = serial.Serial('/dev/ttyACM0', 115200, timeout=2) 
phone.write(b'AT\r') 
data = phone.readall() 
print data 

# *EMRDY: 1 

# AT 
# OK 

Я попытался с pyBluez, но та же проблема, нет ответа моей команды AT:

import bluetooth 

client_sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM) 
client_sock.connect(('XX:XX:XX:XX:XX:XX', 4)) 
client_sock.send(b'AT\r') 
data = client_sock.recv(1024) 
print "received [%s]" % data 

И я finall у попыталось с родными питоном сокетами, но нет ответа:

import socket 

s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM) 
s.connect(('XX:XX:XX:XX:XX:XX',4)) 
s.send(b'AT\r') 
data = s.recv(1024) 
s.close() 
print('Received', repr(data)) 

Примечания: телефон отображает окно подсказки, чтобы признать, что мой компьютер получает доступ к моему смс. Конечно, я согласился.

Может ли кто-нибудь сказать мне, что не так, и что я могу попробовать?

+0

Просто идея отладки: возможно, отправив AT-команду сразу после сбоя соединения, попробуйте добавить задержку между и посмотрите, не имеет значения. – hlovdal

ответ

0

Ну, для стартера лучше сначала проверить, что у вас есть двусторонняя связь между вашим компьютером и телефоном на Bluetooth, как вы сказали, он работал с USB, тогда не должно быть причин, по которым он а не с bluetooth, если вы еще не создали хорошую связь, поэтому я думаю, что лучше сначала попробовать, чтобы у вас была хорошая коммуникация, просто отправив и отвечая той же строкой (какой-то ручной протокол) и убедитесь, что вы знаете что ваш питон-код действительно отправляет, могут быть невидимыми дополнительные символы, использующие Bluetooth, на которые вы не обращаете внимания, что делает вашу AT-команду неузнаваемой на вашем телефоне.

+0

Да, но как я могу проверить свое общение между компьютером и телефоном? Я pinged устройство с l2ping, это достаточно? Я знаю, как отправить строку с компьютера на телефон, но я не понимаю, как телефон может ответить, если на телефоне не работает код. – Damien

Смежные вопросы