Имена служебных вызовов с оболочкой ADB (Android SDK)?

Знаете ли вы команду "служебные вызовы isms" с оболочкой adb на Android? Вот полная команда, которую я использую: служебные вызовы isms 5 s16 "PhoneNumber" i32 0 i32 0 s16 "BodyText".

Есть некоторый параметр, но я не знаю, что это значит (5, s16, i32, 0). Где-то есть руководство? Наиболее важным для меня является получение ошибки, когда sms не отправляет успешно (около 10% смс не отправляется) = > этот вопрос задан уже, но ответа нет (https://stackoverflow.com/info/17395546/get-status-sms-from-isms-service-using-shell-adb-android-sdk).

Я не хочу использовать команды (adb shell am start -a android.intent.action.SENDTO -d смс: CCXXXXXXXXXX --es sms_body "SMS BODY GOES ЗДЕСЬ" --ez exit_on_sent true входной сигнал ввода-вывода adb 22 входной ключ оболочки adb 66) потому что он использует графический интерфейс.

Не могли бы вы мне помочь? (Извините, я не могу говорить по-английски. Итак, я надеюсь, вы понимаете мою просьбу)

Спасибо большое

Ответ 1

В каждой команде "служебный вызов" вам нужно ввести:

  • услугу, которую вы хотите вызвать, в этом случае это "isms";
  • "функция", которую вы хотите вызвать, в этом случае это "5" (подробнее об этом позже);
  • параметры функции.

Существуют два типа возможных параметров: Строки и Целые числа. Перед вводом параметра Integer вам нужно указать его тип, используя i32. То же самое для параметра String, но вместо этого вам нужно написать s16.

Большинство команд "вызова службы" не имеют документации или очень мало.
Для 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 с помощью Строковый параметр "PhoneNumber", параметр Integer 0, Integer параметр 0 и параметр String "BodyText".

Чтобы ответить на ваш вопрос, я уверен, что нет способа узнать, отправляются ли sms или нет из командной строки... Но, может быть, если вы копаете немного глубже, чем я в API вы найдете способ.