最近对service call指令参数比较疑惑,特此搜集了一下资料,解释并记录如下:

需要特别说明的是android版本不同,其CODE值可能不同

原文网址:

https://stackoverflow.com/questions/20227326/where-to-find-info-on-androids-service-call-shell-command

service 说明如下:

Usage: service [-h|-?]service listservice check SERVICEservice call SERVICE CODE [i32 INT | s16 STR] ...
Options:i32: Write the integer INT into the send parcel.s16: Write the UTF-16 string STR into the send parcel.

整个调用如下:

service call <your_service_name> <number at which the function appears in your_service_name.aidl> <type of the argument like i32 or i64> <argument>

1.首先需要查询自己需要调用的系统服务:

adb shell service list

查询结果如下:

...
64      wifip2p: [android.net.wifi.p2p.IWifiP2pManager]
65      netpolicy: [android.net.INetworkPolicyManager]
66      netstats: [android.net.INetworkStatsService]
67      network_score: [android.net.INetworkScoreService]
68      textservices: [com.android.internal.textservice.ITextServicesManager]
69      network_management: [android.os.INetworkManagementService]
70      clipboard: [android.content.IClipboard]
71      statusbar: [com.android.internal.statusbar.IStatusBarService]
72      device_policy: [android.app.admin.IDevicePolicyManager]
73      deviceidle: [android.os.IDeviceIdleController]
74      persistent_data_block: [android.service.persistentdata.IPersistentDataBlockService]
75      lock_settings: [com.android.internal.widget.ILockSettings]
76      uimode: [android.app.IUiModeManager]
77      mount: [IMountService]
78      accessibility: [android.view.accessibility.IAccessibilityManager]
79      input_method: [com.android.internal.view.IInputMethodManager]
...

2.在此使用clipboard服务(方便查看及调用)

  clipboard: [android.content.IClipboard]

3.源码查询:

android/content/IClipboard.aidl

https://android.googlesource.com/platform/frameworks/base/

此处使用android 8.1源码,完整路径为:

https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r51/core/java/android/content/IClipboard.aidl
 void setPrimaryClip(in ClipData clip, String callingPackage);ClipData getPrimaryClip(String pkg);ClipDescription getPrimaryClipDescription(String callingPackage);boolean hasPrimaryClip(String callingPackage);void addPrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener,String callingPackage);void removePrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener);boolean hasClipboardText(String callingPackage);

因此,第一个方法的代码即setPrimaryClip将在第一个位置出现,而对于最后一个方法,即hasClipboardText,它将是7,因为它出现在aidl文件的第七位。与其他方法类似。 
所以,如果我想调用第七种方法,我会输入

adb shell service call clipboard 7

可能已经看到我没有放入callingPackage名称,因为它不是必需的。

如果方法需要参数,那么您可以像本示例中那样传递它。
让我们假设一个方法,其代码在剪贴板中为8,看起来像这样 -

getDemo(String arg1, int arg2, boolean arg3)

所以我可以这样调用它

adb shell call clipboard 8 s16 "first_argument" i32 12 i32 1

这里i32代表整数,s16代表字符串。我们甚至可以将布尔值作为整数传递,如示例所示。
在布尔整数中,1代表true,0代表false。

adb命令之service call相关推荐

  1. [整理]ADB命令行学习笔记

    global driver # 元素定位 driver.find_element_by_id("id") # id定位 driver.find_element_by_name(&q ...

  2. 使用adb命令控制Android

    adb shell input text hello //把hello这个内容传到有焦点的EditText之类的控件上 adb shell input keyevent 3 //相当于按下home键, ...

  3. adb 命令小集(转)

    ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootl ...

  4. (转)Android 常用 adb 命令总结

    转载地址:https://www.cnblogs.com/bravesnail/articles/5850335.html 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常 ...

  5. Android开发中adb命令的常用方法

    Android的SDK中提供了很多有用的工具,在开发过程中如果能熟练使用这些工具,会让我们的开发事半功倍.adb是SDK提供的一个常用的命令行工具,全称为Android Debug Bridge,用于 ...

  6. adb命令实现一些有趣的功能

    下载ADB工具集,手机连接电脑后,用Windows自带命令行进入ADB工具,输入以下命令即可免root实现神奇功能 1.电量显示: adb shell content insert --uri con ...

  7. 总结一些常用Android adb 命令

    2019独角兽企业重金招聘Python工程师标准>>> 总结一些常用的adb 命令 引言 Android开发中我们有时候需要借助一些命令帮助更好的高效率定位解决问题,本文就来介绍一些 ...

  8. 常用的adb命令收集

    测试app常会用到一些adb命令,当然使用adb命令,需要配好jdk.sdk环境,不然不能使用的 1.adb help ----帮助信息 2.adb device ----手机的id查看 3.adb ...

  9. Android通过adb命令传参给APP的方法

    老套路先看图 说下原理: 使用adb命令启动server然后传递参数,service拿到参数后可以根据需求实现模拟控制APP 看代码 package cn.yhsh.adbinputserver.se ...

  10. python执行adb命令_Python实现对adb命令封装

    我就废话不多说了,大家还是直接看代码吧! #!/usr/bin/evn python # -*- coding:utf-8 -*- # FileName adbtools.py # Author: H ...

最新文章

  1. 服务器性能好的笔记本电脑,2020高性价比笔记本推荐-1万以上笔记本电脑排行
  2. python进行数据分析 kindle_利用Python进行数据分析
  3. 10分钟了解JSON Web令牌(JWT)
  4. 【GitHub】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?
  5. 计算 a+aa+aaa+aaaa+aaaaa+ 的和_海南A级景区,三亚市就有14个,你都去过吗
  6. 迷你世界显示未连接服务器成功,迷你世界登录未成功是什么意思 | 手游网游页游攻略大全...
  7. AI+云原生,把卫星遥感虐的死去活来
  8. nginx 获取body参数_日志分析系列(外传二):Nginx日志统一化
  9. Python图像处理库PIL的ImageDraw模块之画出四边形
  10. selenium(待补充)
  11. spss选择主要特征_SPSS统计作图教程:一维箱线图
  12. GoldWave2020注册激活码版下载音频处理制作教程
  13. 麒麟软件、麒麟操作系统、银河麒麟、中标麒麟、优麒麟、国产操作系统下载。
  14. 下单点餐小程序解决方案
  15. 如何设置内网打印机端口网络穿透到公网
  16. 深入浅出XTTS:Oracle数据库迁移升级利器(附PPT)
  17. 【MySQL】数据库表操作
  18. 架构设计第三步:评估和选择备选方案
  19. Web UI - Javascript之DOM Ready
  20. 用计算机探索规律有什么知识点5上,用计算器探索规律知识点

热门文章

  1. a标签中的href=javascript
  2. 阿里系退出吴奇隆刘诗诗公司 仅靠明星光环难留资本
  3. win10配置系统默认utf-8编码
  4. “大菜汪”1 个就霸屏,手机QQ上线新表情
  5. android波纹动画,Android实现水波纹效果
  6. 解决java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionV
  7. IoT产品安全基线(一)硬件安全
  8. stirling formula prove
  9. 饥荒联机版服务器控制台本地和在线,《饥荒》多人联机版控制台开启方法详解...
  10. 别错过这张AI商用清单:你的生产难题可能被一个应用解决!