当前位置: 首页 > 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.lryc.cn/news/598359.html

相关文章:

  • Lua(文件I/O)
  • VB解除excel保护工作表
  • 【docker】将已有mysql脚本导入镜像内使用
  • API安全监测工具:数字经济的免疫哨兵
  • Linux服务器安全自动化审计实战:一键扫描账户/网络/进程/计划任务风险(附开源脚本)
  • 项目——在线五子棋对战
  • pyarmor加密源代码
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十三课——车牌识别的FPGA实现(5)车牌字符的识别
  • OpenCV —— contours_matrix_()_[]
  • 删除排序数组中的重复项
  • 微服务的编程测评系统6-管理员登录前端-前端路由优化
  • 一文说清楚Hive中常用的聚合函数[collect_list]
  • 亿级流量短剧平台架构演进:高并发场景下的微服务设计与性能调优
  • Matplotlib详细教程(基础介绍,参数调整,绘图教程)
  • IO密集型、CPU密集型、负载、负载均衡
  • 校园英语杂志《校园英语》杂志社校园英语编辑部2025年第15期目录
  • 考研初试专业分146!上岸新疆大学!信号与系统考研经验,通信考研小马哥。
  • GitHub Actions打包容器,推送 AWS ECR 并使 EKS 自动拉取以完成发版部署
  • Redis数据类型与内部编码
  • Webpack配置原理
  • MongoDB 和 Elasticsearch(ES)区别
  • Windows 下配置 GPU 用于深度学习(PyTorch)的完整流程
  • matrix-breakout-2-morpheus靶场通过
  • 基于深度学习的胸部 X 光图像肺炎分类系统(二)
  • 小架构step系列24:功能模块
  • Android中compileSdk,minSdk,targetSdk的含义和区别
  • M3295NL专为千兆以太网设计,支持100/1000Mbps全双工通信M3295支持4对5类UTP电缆
  • SparkSQL 子查询 IN/NOT IN 对 NULL 值的处理
  • 数据结构 堆(3)---堆排序
  • 在 Windows 上安装设置 MongoDB及常见问题