adb shell 发送广播带包名

adb  Android  2022年10月19日 pm7:00发布2年前 (2022)更新 城堡大人
140 0 0

前言

之前我们知道adb发送广播带参数,但是有于Android的权限慢慢收紧,如果不加上接收应用的包名,无法收到发送的静态广播

Android 8.0

Beginning with Android 8.0 (API level 26), the system imposes additional restrictions on manifest-declared receivers.

If your app targets Android 8.0 or higher, you cannot use the manifest to declare a receiver for most implicit broadcasts (broadcasts that don't target your app specifically). You can still use a context-registered receiver when the user is actively using your app.

大概意思,静态广播不能到处飞,需要指定接收应用的包名。

正文

由上面得知,我们知道现在发送静态广播,需要指定接收的应用包名。

回归正题,之前我这里摘抄过使用adb shell 发送Broadcast带参数的,这里再摘抄一次。

adb shell am broadcast后面的参数有:

[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>] [<URI>]

举个例子

# 广播1 不带参数 
adb shell am broadcat -a com.125la.test
# 广播2 带String类型的参数
adb shell am broadcast -a com.125la.test --es test_string "this is test string"
# 广播3 带int类型的参数
adb shell am broadcast -a com.125la.test --ei test_int 100
# 广播4 带boolean类型的参数
adb shell am broadcast -a com.125la.test --ez test_boolean true

PS : -a后面的com.125la.test是ACTION,不是包名。

如果发送静态广播,需要带上接收方的包名。也就在上面基础上最后面加一个包名,比如接收方的包名为:com.biumall.water

# 广播2 带String类型的参数
adb shell am broadcast -a com.125la.test --es test_string "this is test string" com.biumall.water

# 广播3 带int类型的参数
adb shell am broadcast -a com.125la.test --ei test_int 100 com.biumall.water

# 广播4 带boolean类型的参数
adb shell am broadcast -a com.125la.test --ez test_boolean true com.biumall.water

如果不加包名[com.biumall.water],静态注册的BroadcastReceiver是无法接受到上面发送的广播。

参考文章

  1. Android-adb shell am broadcast发广播_cheri--的博客-CSDN博客

  2. adb命令启动service、Activity和发送Broadcast -笔友城堡 - 阅读是一种生活方式 ()

  3. Android 接收不到静态广播(自定义广播)飞鸭传书的博客-CSDN博客android 静态广播

 历史上的今天

  1. 2024: XmlPullParser简单使用(0条评论)
  2. 2023: 抱歉,125啦下架了(0条评论)
  3. 2019: 冯骥才:青云楼主(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

Android NDK配置简单记录

前言这里简单记录一下Android中使用DNK的配置,记录于此,方便自己查阅。流水账而已。环境:Windows11版本:android-ndk-r27-windows正文第一步如果没有下载就去官网《NDK 下载》下载吧,我这里下载当前最新的android-ndk-r27-windows...

git常用命令

git常用git initgit addgit statusgit commitgit commit -m "xxx"git loggit loggit log -p 同时列出本次提交前后具体的差别git log --pretty=oneline 每条记录仅占一行显示查看分支...

周作人:乌篷船

子荣君:接到手书,知道你要到我的故乡去,叫我给你一点什么指导。老实说,我的故乡,真正觉得可怀恋的地方,并不是那里,但是因为在那里生长,住过十多年,究竟知道一点情形,所以写这一封信告诉你。我所要告诉你的,并不是那里的风土人情,那是写不尽的,但是你到那里一看也就会明白的,不必哆唆地多讲。我要说的是一...

C语言之scanf()

前言简单记录一下scanf的使用。scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数。正文scanf说明语法:#include <stdio.h> int scanf( const char *format, ... ...

[摘]Android性能优化篇之内存优化--内存泄漏

SHUI知道这篇文章对Android性能优化篇之内存优化--内存泄漏总结得很到位,基本上涵盖了。感谢感谢。什么是内存泄漏当一个对象已经不需要在使用了,本应该被回收,而另一个正在使用的对象持有它的引用,导致对象不能被回收。因为不能被及时回收的本该被回收的内存,就产生了内存泄漏。如果内存泄漏太多...

Android的5个进程等级

 一、进程:进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。进程是系统进行资源分配和调度的一个独立单位。可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体,是一个“执行中的程序”。不只是程序的代码,还包括当前的活动。二、线程:线程是进程的一个实体,是CPU调度和...