【问题标题】:Service call isms with ADB shell (Android SDK)?带有 ADB shell(Android SDK)的服务调用isms?
【发布时间】:2013-07-17 04:38:08
【问题描述】:

你知道 Android 上带有 adb shell 的命令“service callisms”吗? 这是我使用的完整命令:service callisms 5 s16 "PhoneNumber" i32 0 i32 0 s16 "BodyText"。

有一些参数,但我不知道它是什么意思(5,s16,i32,0)。哪里有说明书? 对我来说最重要的是当短信未成功发送时出现错误(大约 10% 的短信未发送)=> 这个问题已经提出但没有答案(https://stackoverflow.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 BODY GOES HERE" --ez exit_on_sent true adb shell 输入keyevent 22 adb shell 输入键事件 66) 因为它使用图形界面。

你能帮帮我吗? (对不起,我不会说英语。所以,希望你能理解我的要求)

非常感谢

【问题讨论】:

    标签: android shell sdk sms adb


    【解决方案1】:

    在每个“服务调用”命令中,需要输入:

    • 您要调用的服务,在本例中为“isms”;
    • 您要调用的“函数”,在本例中为“5”(稍后会详细介绍);
    • 函数参数。

    有两种可能的参数类型:字符串整数。在输入整数参数之前,您需要使用 i32 指定其类型。 字符串参数也是如此,但您需要编写 s16.

    大多数“服务调用”命令没有文档,或者很少。
    对于 ISms,您可以在这里查看:http://www.androidjavadoc.com/1.0_r1_src/constant-values.html 获取可能的功能及其编号的列表。按 ctrl-f 并输入 ISms 以快速访问。

    ISms 服务的“5”函数是来自 Android API 的 ISms 接口的 sendMultipartText 函数。 Here is the doc about this function.And here is the implementation class from the API.

    所以,service call isms 5 s16 "PhoneNumber" i32 0 i32 0 s16 "BodyText",等于:

    使用 ISms 服务调用 sendMultipartText 函数 String 参数“PhoneNumber”,Integer 参数 0,Integer 参数 0 和字符串参数“BodyText”。

    回答你的问题,我很确定没有办法知道短信是否从命令行发送......但也许如果你比我更深入一点在 API 中,您会找到一种方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2012-05-27
    • 2011-04-14
    • 2021-08-06
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多