使用ADB shell(Android SDK)进行服务调用?

kiw*_*ibe 4 shell sms sdk android adb

你知道Android上的adb shell命令"service call isms"吗?这是我使用的完整命令:service call isms 5 s16"PhoneNumber"i32 0 i32 0 s16"BodyText".

有一些参数,但我不知道它是什么意思(5,s16,i32,0).有手册吗?对我来说最重要的是当短信没有成功发送时出错(大约10%的短信没有发送)=>这个问题已经问过但是没有答案(/sf/ask/1217688251/).

我不想使用命令(adb shell am start -a android.intent.action.SENDTO -d sms:CCXXXXXXXXXX --es sms_body"SMS BODY GOES HERE"--ee exit_on_sent true adb shell input keyevent 22 adb shell input keyevent 66)因为它使用图形界面.

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

非常感谢

小智 6

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

  • 你要打电话的服务,在这种情况下它是"主义";
  • 你要调用的"函数",在这种情况下它是"5"(稍后会更多);
  • 功能参数.

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

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

ISms服务的"5"功能是来自Android API的ISms接口的sendMultipartText功能.这是关于这个功能的文档. 这是API的实现类.

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

使用String参数"PhoneNumber",Integer参数0,Integer参数0和String参数"BodyText"从ISms服务调用sendMultipartText函数.

为了回答你的问题,我很确定无法知道短信是否从命令行发送......但是如果你比我在API中挖得更深,你会找到一种方法.

  • 链接http://www.androidjavadoc.com/1.0_r1_src/constant-values.html已经变形为404并飞走了 (3认同)