加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 21:33:24 所属栏目:安全 来源:网络整理
导读:你知道 Android上的adb shell命令“service call isms”吗? 这是我使用的完整命令:service call isms 5 s16“PhoneNumber”i32 0 i32 0 s16“BodyText”. 有一些参数,但我不知道它是什么意思(5,s16,i32,0).有手册吗? 对我来说最重要的是当短信没有成功发
你知道 Android上的adb shell命令“service call isms”吗?
这是我使用的完整命令:service call isms 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输入keyevent 66)
因为它使用图形界面.

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

非常感谢

解决方法

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

>你要打电话的服务,在这种情况下它是“主义”;
>你要调用的“函数”,在这种情况下它是“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功能. Here is the doc about this function. And here is the implementation class from the API.

所以,服务呼叫主义5 s16“PhoneNumber”i32 0 i32 0 s16“BodyText”,等于:

Call the sendMultipartText function from the ISms service with the
String parameter “PhoneNumber”,the Integer parameter 0,the Integer
parameter 0 and the String parameter “BodyText”.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读