Как разобрать строку для отправки СМС через АБР - PullRequest
2 голосов
/ 24 мая 2019

Я пытаюсь отправить SMS с помощью команды терминала ADB.

$message = "Joe Doe. We find a provider for your request, touch the link below for see more details.
https://massasistencia.com/detalles-cliente/23"

exec('adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "+541156409605" s16 "null" s16 "' .$message. '" s16 "null" s16 "null"')

В полученном сообщении говорится только "Джо"

Если я отправляю только ссылку, SMS приходит нормально.Если я сделаю str_replace вместо «Joe Doe», заменив «« для »-« только отправив имя, сообщение прибудет нормально.

Я считаю, что проблема в пробелах ».

Этоэто командная строка, которую я использую, приходит SMS, поэтому команда работает, проблема в самом сообщении.

adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "+541156409958" s16 "null" s16 "Hi" s16 "null" s16 "null"

1 Ответ

0 голосов
/ 24 мая 2019

Вам необходимо добавить символ косой черты (\) перед каждым пробелом в сообщении.Следующая команда отправит только Джо:

 adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "+541156409958" s16 "null" s16 "Joe Doe. hello" s16 "null" s16 "null"

Следующая команда отправит Джо Доу.привет:

adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "+541156409958" s16 "null" s16 "Joe\ Doe.\ hello" s16 "null" s16 "null"
...