Вече публикувах подобен въпрос, но все още не можах да си свърша работата, така че това е втори опит, където бих искал по-ясно да изразя препъникамъка си.
Така че основно съм в adb обвивката на телефона с Android, комуникирам с GPRS модема чрез изпращане на AT команди. Мога да го направя, като пренасоча команда към файла на устройството, представляващ модема; и мога да прочета отговора с помощта на помощната програма cat, работеща на заден план (започнала по-рано). Приложих го в скрипт, който може да изпрати една AT команда и да прочете отговора. Например, ето скрипта за изпращане на +ченгета? за да получите името на мобилния оператор към къмпинг:
#SendATCommand script
cat /dev/pts/7 &
echo -e at+cops?\\r > /dev/pts/7
Резултатът изглежда по следния начин:
# ./sendATCommand
./sendATCommand
#
+COPS: 0,0,"AT&T",6
OK
/dev/pts/7: invalid length
Ето два проблема, които не мога да разреша:
- Все още трябва ръчно да натисна бутона ENTER, за да върна подканата на adb shell "#". Има ли начин да се върнете към подканата "#" програмно? Отново съм в adb shell.
- Показаният отговор не може да бъде уловен, нито в променлива, нито във файл (като (#./sendATCommand > output.txt) Файлът Output.txt ще бъде празен. Опитах различни пренасочвания, но все още не успях .
Може ли някой да ми помогне да разреша тези два проблема (ако изобщо е възможно)? В крайна сметка искам този малък скрипт да бъде извикан от „супер“ скрипт (напр. Perl или Powershell), работещ на компютър, към който е свързано моето Android устройство, но няма начин да го направя, докато тези два проблема не бъдат разрешени. Благодаря много предварително!
\\r
? не само\r
, ИЛИ опитайте\n
ИЛИ по-често, когато е включен\r
,\r\n
. Защо мислите, че получавате съобщението „невалидна дължина“? Не съм човек с Android, така че това е всичко, което мога да предложа. Късмет. - person shellter   schedule 15.02.2012\r
, stackoverflow.com/a/21503919/23118. Не използвайте\n
. - person hlovdal   schedule 22.02.2014echo 'at+cops?' | tr '\012' '\015' > /dev/pts/7
, където командата tr преобразува\n
в\r
. Но както забелязахте, I/O потокът вероятно все още ще бъде крехък. - person hlovdal   schedule 22.02.2014