Служба вызова isms с оболочкой ADB (Android SDK)?
Знаете ли вы команду "service call isms" с оболочкой adb на Android? Вот полная команда, которую я использую: сервисный вызов isms 5 s16 "PhoneNumber" i32 0 i32 0 s16 "BodyText".
Есть какой-то параметр, но я не знаю, что это значит (5, s16, i32, 0). Есть ли где-нибудь руководство? Самое важное для меня - это получить сообщение об ошибке, когда смс не отправляется успешно (около 10% смс не отправляются) => этот вопрос уже задан, но ответа нет ( https://stackru.com/questions/17395546/get-status-sms-from-isms-service-using-shell-adb-android-sdk).
Я не хочу использовать команды (adb shell am start -a android.intent.action.SENDTO -d sms:CCXXXXXXXXXX --es sms_body "SMS ТЕЛО ПРОХОДИТ ЗДЕСЬ" --ez exit_on_sent true ввод оболочки adb keyevent 22 ввод оболочки adb keyevent 66), потому что он использует графический интерфейс.
Не могли бы вы помочь мне? (Извините, я не говорю по-английски. Надеюсь, вы понимаете мою просьбу)
большое спасибо
1 ответ
В каждой команде "service call" вам необходимо ввести:
- услуга, которую вы хотите вызвать, в данном случае это "isms";
- "функция", которую вы хотите вызвать, в данном случае это "5" (подробнее об этом позже);
- параметры функции.
Существует два типа возможных параметров: строки и целые числа. Перед вводом параметра Integer необходимо указать его тип с помощью i32. То же самое для параметра String, но вместо этого вам нужно написать s16.
Большинство команд "service call" не имеют документации или очень мало.
Для ISms вы можете посмотреть здесь: http://www.androidjavadoc.com/1.0_r1_src/constant-values.html чтобы получить список возможных функций и их числовой код. Нажмите Ctrl-F и введите ISms для быстрого доступа.
Функция "5" для службы ISms - это функция sendMultipartText из интерфейса ISms API Android. Вот документ об этой функции. А вот класс реализации из API.
Так, service call isms 5 s16 "PhoneNumber" i32 0 i32 0 s16 "BodyText"
, равно:
Вызовите функцию sendMultipartText из службы ISms с параметром String "PhoneNumber", параметром Integer 0, параметром Integer 0 и параметром String "BodyText".
Отвечая на ваш вопрос, я почти уверен, что нет способа узнать, отправляются смс или нет из командной строки... Но, возможно, если вы покопаетесь немного глубже, чем я в API, вы найдете способ.