2012-10-12 5 views
10

У меня есть задача на работу, чтобы выяснить, можно ли отправлять AT-команды на устройство Android через оболочку ADB. До сих пор я пытался откликнуться на команды AT, но он передает их как обычные строки. Любая помощь пожалуйста всем.Отправка AT-команд с помощью ADB Android

+0

Я не думаю, что это возможно. ADB не является модемом GSM – opc0de

+0

Я знаю, но я видел подобное сообщение, где люди успешно выполняли команды с помощью внедренного устройства. –

+0

проверить это http://tech-papers.org/executing-at-commands-android-application/ –

ответ

2

Эхо их где? В Android вы разговариваете с демоном rild (Radio Interface Layer), который, по очереди, разговаривает с собственной библиотекой, которая отправляет команды на фактическое оборудование. Проверьте исходный код rild. Вероятно, вы могли бы написать программу командной строки, которая будет разговаривать с rild и выполнять ее через оболочку adb, если это вам подходит.

+0

Это действительно возможно. Я смог получить пару работающих, и большинство из них вернули запрос OK. –

+0

Опять же, эхо их где? Какую команду вы выдали? АБР - это просто средство для выполнения команды оболочки на телефоне. Вы могли бы напрямую поговорить с каким-то последовательным (-подобным) устройством, или вы, возможно, не сможете. Это во многом зависит от конкретного телефона. –

6

Пожалуйста, попробуйте следующее:

echo -e "AT+CFUN=?\r\n" > /dev/ttyUSB0 

На телефоне, последовательная линия не должна обязательно называться ttyUSB0. Если это не работает или недоступно, проверьте другие записи в каталоге /dev/.
Таким образом, это также может быть /dev/ttyGS0 или /dev/SMD0 (как выяснил @Sani).

Для получения дополнительной информации, пожалуйста, проверьте этот Guide


ПРИМЕЧАНИЕ:

Там также может быть телефоны, которые не реагируют на команды AT на любом из своих серийных (tty) устройств.
Я просто пробовал свою собственную процедуру на Samsung Galaxy S4 и не имел никакого успеха.

+0

Я пробовал это, и он не работает. BDW мое устройство - это галактический туз, укоренившийся –

+1

i HAVE GOTTEN - рабочее решение.Мне нужно было найти модем для моего устройства, который в моем случае является SMD0 вместо TTYUSB0. У меня было несколько команд, и некоторые вернулись. Все еще расследует. Спасибо, парни. –

+0

Ааа, вот почему я сказал вам проверить проводник. : o) Я закончу свой ответ, чтобы соответствовать этой проблеме. Спасибо, что поделились с нами! – Nippey

0

Для того, чтобы выяснить, какой порт использовать: Вы можете проверить

# cat /proc/tty/drivers 

Используйте logcat -b radio | grep dev, чтобы увидеть которым терминал радио использует.

+0

Для моего Galaxy Note II (GT-N7100) это было '/ dev/ttySAC2'. – psiphi75

0

да, вы можете запустить AT команды из ADB оболочки тоже ...

prerequsite :- 
1. rooted android phone 
2. you are aware of the port that RIL use for i/o operation. 
3. to check which port is being used by RIl use `getprop rild.libargs` 

для запуска AT команды от АБР

use echo -c "AT\r\n" > /dev/smd11 

PS: smd11 является порт, используемый RIL.This изменяется от устройства к устройству.

также для запуска AT команд из приложения Android проверить этот учебник

http://tech-papers.org/executing-at-commands-android-application/

+0

", чтобы проверить, какой порт используется RIl, использует' getprop rild.libargs', но в моем случае он ничего не возвращает. Текст не отображается. Я использую Samsung GT-S5301 – mkhan

+1

Ссылка мертва –

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