2012-10-12 11 views
10

Ho un compito al lavoro per indagare se è possibile inviare comandi AT a un dispositivo Android tramite shell ADB. Finora, ho cercato di echeggiare i comandi AT ma li passa come normali stringhe. Qualsiasi aiuto, per favore chiunque.Invio di comandi AT tramite ADB Android

+0

non credo sia possibile. ADB non è un modem GSM – opc0de

+0

Lo so, ma ho visto post simili in cui le persone hanno eseguito con successo i comandi con un dispositivo rooted. –

+0

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

risposta

2

Echo dove? In Android parli con il daemon rild (Radio Interface Layer), che a sua volta parla con una libreria proprietaria, che invia comandi all'hardware reale. Controllare il codice sorgente rild per i dettagli. Probabilmente potresti scrivere un programma a riga di comando che dialoga con il rild ed eseguirlo tramite adb shell, se questo corrisponde alle tue esigenze.

+0

In realtà è possibile. Sono stato in grado di ottenere un paio di lavoro e la maggior parte hanno restituito richiesta OK. –

+0

Ancora, li fai eco dove? Che comando hai emesso? ADB è solo un mezzo per eseguire il comando della shell sul telefono. Potresti essere in grado di parlare direttamente con qualche dispositivo seriale (-like), oppure potresti non essere in grado di farlo. Questo dipende in gran parte dal particolare telefono. –

6

Si prega di provare questo:

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

Sul telefono, la linea seriale non deve necessariamente essere chiamato ttyUSB0. Se questo non funziona o non è disponibile, controlla le altre voci della directory /dev/.
Quindi potrebbe anche essere /dev/ttyGS0 o /dev/SMD0 (come scoperto da @Sani).

Per ulteriori informazioni, si prega di consultare questo Guide


NOTA:

Ci potrebbe essere anche i telefoni, che non rispondono ai comandi AT su uno qualsiasi dei loro (tty) dispositivi seriali.
Ho appena provato la mia procedura su un Samsung Galaxy S4 e non ho avuto alcun successo.

+0

Ho provato questo e non funziona. BDW il mio dispositivo è un asso di galassie radicato –

+1

HO GIÀ OTTENUTO una soluzione funzionante.Avevo bisogno di trovare il mio modem del dispositivo che nel mio caso è SMD0 invece di TTYUSB0. Ho avuto un paio di comandi e alcuni ritornano OK. Ancora indagando Grazie ragazzi. –

+0

Aaah, ecco perché ti ho detto di dare un'occhiata alla guida. : o) Completerò la mia risposta per abbinare quel problema. Grazie per aver condiviso con noi! – Nippey

0

Al fine di scoprire quale porta da utilizzare: È possibile controllare

# cat /proc/tty/drivers 

Usa logcat -b radio | grep dev per vedere wich tty la radio sta usando.

+0

Per il mio Galaxy Note II (GT-N7100) questo era '/ dev/ttySAC2'. – psiphi75

0

sì, è possibile eseguire i comandi AT da adb shell troppo ...

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` 

per l'esecuzione a comando da ADB

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

PS: smd11 è la porta utilizzata da RIL.This varia da dispositivo a dispositivo.

anche a correre i comandi AT dall'applicazione Android controllare questo tutorial

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

+0

"per verificare quale porta viene utilizzata da RIl utilizzare' getprop rild.libargs' "ma nel mio caso non restituisce nulla. Nessun testo è mostrato. Sto usando un Samsung GT-S5301 – mkhan

+1

Il collegamento è morto –