当前位置: 首页 > news >正文

使用adb 发送广播 动态改变app内的值

前言

在开发过程中有时候我们需要做一些调试工作。可以通过adb发送广播实现。

广播注册

注意最后一个参数,Context.RECEIVER_EXPORTED 这是Android 34以后强制要求的,方便外部发送这个广播。否则会报错

		 val filter = IntentFilter()filter.addAction("com.aaa.bbb.ccc.running.test")context?.let {mLogger.d("registerReceiver is success")it.applicationContext.registerReceiver(testReceiver, filter, Context.RECEIVER_EXPORTED)}

广播监听器

private var testReceiver: BroadcastReceiver = object : BroadcastReceiver() {override fun onReceive(context: Context?, intent: Intent?) {var appState = intent?.getStringExtra("appState");mLogger.w("接收到状态 appState=" + appState)if ("error".equals(appState)) {recordServiceStared = false;}}}

adb 发射命令

其中 -a 后面是上面的Action。
-es 后面跟的是参数

adb shell am broadcast -a com.aaa.bbb.ccc.running.test --es appState "error"
参数类型含义示例
--esString添加一个字符串(String)类型的 Extra--es key "value"
--ezBoolean添加一个布尔值(true/false)--ez key true
--eiInteger添加一个整数(int)--ei key 123
--elLong添加一个长整型(long)--el key 1234567890
--efFloat添加一个浮点数(float)--ef key 3.14
--euURI添加一个 URI 类型--eu key content://media/external/audio/media/1
--ecnComponentName添加一个组件名(用于指定接收器)--ecn key com.example.app/.MyReceiver
--eiaint[] Array添加整型数组--eia key 1 2 3
--elalong[] Array添加长整型数组--ela key 1000 2000 3000
--efafloat[] Array添加浮点数组--efa key 1.1 2.2 3.3
--esaString[] Array添加字符串数组--esa key "a" "b" "c"
--esnnull添加一个 null 值--esn key

补充

有时候应用没有退出,这个时候监听器没有生效。需要杀了app,重试

adb shell am force-stop <包名>
http://www.dtcms.com/a/296659.html

相关文章:

  • 【PyTorch】图像二分类项目-部署
  • 【数字IC验证学习------- SOC 验证 和 IP验证和形式验证的区别】
  • NOTEPAD!NPCommand函数分析之comdlg32!GetSaveFileNameW--windows记事本源代码分析
  • 暑假集训篇之并发处理①练习题
  • prometheus监控k8s的metric详解-01-apiserver部分-05-其他
  • 局域网TCP通过组播放地址rtp推流和拉流实现实时喊话
  • 猎板碳油 PCB和普通PCB的区别
  • 【OpenCV实现多图像拼接】
  • kafka消费者组消费进度(Lag)深入理解
  • Redis--哨兵机制详解
  • Linux C:预处理命令
  • 225. 用队列实现栈
  • markdown学习笔记(个人向) Part.2
  • Redis高可用架构演进面试笔记
  • C#解析JSON数据全攻略
  • SpringBoot框架,不同环境中实体类对应不同的表
  • MySQL workbench的使用
  • Django 科普介绍:从入门到了解其核心魅力
  • 【Python】Python多线程爬虫实战:从基础原理到分布式架构实现
  • RCLAMP0512TQTCT 升特半导体 TVS二极管 12通道全防护芯片 以太网/PLC控制/5G基站专用
  • UE5中如何解决角色网格体“掉下去”的问题
  • 高并发系统设计面试题
  • 高效互联,ModbusTCP转EtherCAT网关赋能新能源电缆智能制造
  • Apache 消息队列分布式架构与原理
  • 六种经典智能优化算法(PSO/GWO/WOA/HHO/DBO/SSA)无人机(UAV)三维路径规划,Matlab代码实现
  • 【三桥君】大语言模型计算成本高,MoE如何有效降低成本?
  • Java学习---Spring及其衍生(下)
  • Oracle 时间处理函数和操作符笔记
  • 数据库常用DDL语言
  • 洛谷 P1996 约瑟夫问题之题解