首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当sendBroadcast(意图)工作正常时,adb shell广播不工作。

当sendBroadcast(意图)工作正常时,adb shell广播不工作可能是由以下原因导致的:

  1. 权限问题:adb shell广播需要相应的权限才能正常工作。请确保你的应用程序具有发送广播的权限,并且已经在AndroidManifest.xml文件中声明了相应的权限。
  2. 广播接收器未注册:确保你的应用程序中已经注册了接收该广播的广播接收器。在AndroidManifest.xml文件中添加相应的广播接收器声明,并确保接收器的过滤器与发送广播时使用的意图匹配。
  3. 广播发送方式不正确:在adb shell中发送广播时,需要使用正确的命令格式。正确的格式是:am broadcast -a <action> -n <component>,其中<action>是广播的动作,<component>是接收广播的组件的包名和类名。
  4. 广播发送的目标不正确:确保广播发送的目标是正确的。如果你的应用程序是系统应用程序或者具有系统级别的权限,可能需要使用--user <user_id>参数指定目标用户。
  5. 设备连接问题:如果adb shell广播在某个特定设备上不工作,可能是由于设备连接问题导致的。请确保设备已正确连接,并且adb shell命令可以正常执行其他操作。

总结起来,当sendBroadcast(意图)工作正常时,adb shell广播不工作可能是由于权限问题、广播接收器未注册、广播发送方式不正确、广播发送的目标不正确或设备连接问题导致的。请逐一检查这些可能的原因,并进行相应的调试和修复。

腾讯云相关产品和产品介绍链接地址:

  • 云计算产品:https://cloud.tencent.com/product
  • 人工智能产品:https://cloud.tencent.com/product/ai
  • 物联网产品:https://cloud.tencent.com/product/iotexplorer
  • 移动开发产品:https://cloud.tencent.com/product/mobile
  • 存储产品:https://cloud.tencent.com/product/cos
  • 区块链产品:https://cloud.tencent.com/product/baas
  • 元宇宙产品:https://cloud.tencent.com/product/metaspace
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android Broadcast Receiver漏洞挖掘

发送一个广播,系统会将发送的广播(intent)与系统中所有注册的符合条件的接收者的IntentFilter进行匹配,若匹配成功,则执行相应接收者的onReceive函数。...发送广播如果处理不当,恶意应用便可以嗅探、拦截广播,致使敏感数据泄露等;如果接收广播处理不当,便可导致拒绝服务攻击、伪造消息、越权操作等。...code: android.intent.action.PACKAGE_FULLY_REMOVED 漏洞证明: 简单测试方法用adb shell 发送广播 code区域: am broadcast...内部app之间的广播使用protectionLevel=’signature’ 验证其是否真是内部app。 返回结果需注意接收app是否会泄露信息。...发送的广播包含敏感信息需指定广播接收器,使用显示意图或者setPackage(String packageName)。 使用LocalBroadcastManager。

1.1K20

17 个必须掌握的 BroadcastReceiver 知识点「建议收藏」

广播发出之后,同一刻只有一个广播接收器能够收到这条广播消息,其逻辑执行完后该广播接收器才会继续传递。...如果比他优先级高的接受者终止广播, 那么他的 onReceive 会执行两次 第一次是正常的接收 第二次是最终的接收 如果优先级高的那个终止广播, 那么他还是会收到一次最终的广播 1.2.4 常见的广播接收者运用场景...在系统内部特定时间发生,系统广播由系统自动发出。..., 意图添加消息内容, 意图设置 action( … ) 要匹配 , 然后发送广播即可....其他组件通过 sendBroadcast() 、sendStickyBroadcast() 、sendOrderBroadcast() 方法发送广播消息,如果该 BroadcastReceiver

1.6K31
  • 安卓应用安全指南 4.2.3 创建使用广播接收器 高级话题

    图 4.2-4 是一个正常行为的例子,隐式意图只能在同一个应用中调用私有接收器(应用 A)。 意图过滤器(在图中,action ="X")仅在应用 A 中定义,所以这是预期的行为。...当应用 B 是恶意软件,会导致敏感信息的泄漏。 发送有序广播,它可能会收到意外的结果信息。...然而,广播接收器仅接收由系统发送的广播意图,应使用带有意图过滤器定义的exported="false"。 其他组合不应使用。...因此,不需要粘性广播,需要显式调用removeStickyBroadcast()来删除粘滞广播。 此外,带有特定权限的受限的广播接收器无法接收广播。...作为对策,有必要遵循“4.2.1.2 公共广播接收器 - 接收/发送广播”中列出的要点,并确保传输的意图包含敏感信息。

    1K10

    Android点将台:传令官(使用级)

    ) sendBroadcast(intent) } 4.静态广播中的数据获取 广播接收者的onReceive回调中有intent: Intent,你应该明白怎么传数据了吧 ---...也没有太大的亮点,作用平平 为了说明他的亮点,现在我们新建一个app:Anotherapp 可以发现在另一个app里也能正常使用这个广播 这就有点意思了,我在A项目中写了一个类,它的方法可以在...mBatteryChangeReceiver = BatteryBReceiver(id_tv_info) registerReceiver(mBatteryChangeReceiver, filter) } 4.app安装/卸载改变广播监听...:张风捷特烈 * 时间:2019/1/22/022:16:43 * 邮箱:1981462002@qq.com * 说明:app安装/卸载改变广播监听...} } } ---->[AppBrActivity使用方法]------------------------------------ /** * 动态注册app安装/卸载改变广播监听

    11010

    Android扫描多媒体文件剖析

    MediaScannerReciever如何处理Intent 且仅接收到action android.intent.action.BOOT_COMPLETED才扫描内部存储(非内置和外置sdcard...收到 Intent.ACTION_MEDIA_MOUNTED intent,扫描Sdcard 收到 Intent.ACTION_MEDIA_SCANNER_SCAN_FILE intent,检测没有问题...(mediaScanIntent); 上面的极简方法大多数情况下正常工作,但是有些情况下是不会工作的,稍后的部分会介绍。...为什么发送MEDIA_SCANNER_SCAN_FILE广播生效 关于为什么有些设备上生效,很多人认为是API原因,其实不是的,这其实和你传入的文件路径有关系。...能不能简简单单发广播? 仅仅发一个广播能解决问题么?我倒是希望可以,但是实际上是工作的,查看如下代码即可明白。

    1.9K80

    关于Android中App的停止状态

    在能处理intent的目标处理者中包含已经停止的程序....如果intnet中没有或者设置了上面两个flag,在目标处理者中是包含已经处于停止的程序.但是注意,系统会为所有的广播intent增加FLAG_EXCLUDE_STOPPED_PACKAGES这个flag...正如上述引用指出,系统默认阻止广播intent发送给处于停止状态的程序包,实际上这是为了保证安全和省电需要.比如说网络变化的广播,如果某些程序注册监听,并且它在得到广播,做一系列的网络操作,这样必然是很耗能源的...如何变为停止状态 在设置应用管理中的应用详情页点击强制停止 使用adb shell adb shell am force-stop package-name 使用ActivityManager的隐藏方法...如果使用adb,同样是加入FLAG_INCLUDE_STOPPED_PACKAGES(其具体值为32),如adb shell am broadcast -a com.android.vending.INSTALL_REFERRER

    1.9K10

    Android扫描多媒体文件剖析

    MediaScannerReciever如何处理Intent 且仅接收到action android.intent.action.BOOT_COMPLETED才扫描内部存储(非内置和外置sdcard...收到 Intent.ACTION_MEDIA_MOUNTED intent,扫描Sdcard 收到 Intent.ACTION_MEDIA_SCANNER_SCAN_FILE intent,检测没有问题...(mediaScanIntent); 上面的极简方法大多数情况下正常工作,但是有些情况下是不会工作的,稍后的部分会介绍。...为什么发送MEDIA_SCANNER_SCAN_FILE广播生效 关于为什么有些设备上生效,很多人认为是API原因,其实不是的,这其实和你传入的文件路径有关系。...能不能简简单单发广播? 仅仅发一个广播能解决问题么?我倒是希望可以,但是实际上是工作的,查看如下代码即可明白。

    1.1K10

    App安全测试—Android安全测试规范

    预期结果:应用申请合理的系统权限 整改建议:为应用分配合理的系统权限 AllowBackup开启 用例风险:allowBackup标志值为true,即可通过adb backup和adb restore...备注:allowBackup属性未配置默认为true debuggable开启 用例风险:debuggable标志值为true,即表示是App可调试的,存在安全泄露风险。...执行步骤 使用adb shell连接设备 进入应用目录cd /data/data/xxxx(包名) 执行命令ls -al,查看当前目录下所有文件权限。...执行步骤 反编译apk获取源代码,在源代码中搜索定位发送广播消息的位置,例如搜索sendBroadcast()。...", "allow.package.recv.classname")); sendBroadcast(intent); 广播如果是APP内部使用,使用LocalBroadcastManager,使广播

    4.2K42

    安卓开发_深入理解广播机制

    原因如下: (1)广播接收器的生命周期是非常短暂的,广播接收器接收到广播开始创建,而执行完onReceive(context,intent)方法后就销毁 (2)默认情况下,广播接收器也是运行在UI线程中的...,即建议执行耗时操作 注:在广播接收器中创建子线程执行耗时操作也是建议使用的,因为一旦广播接收器被销毁(太容易被销毁了,生命周期太短),子线程就成为了空线程,很容易被系统杀死 2、自定义BroadcastReceiver...在发送广播,不管是什么广播类型(系统广播),系统默认增加了值为FLAG_EXCLUDE_STOPPED_PACKAGES(包含已经停止的包)的FLAG, 导致即使是静态注册的广播接收器,对于其所在进程已经退出的应用程序...4、发送广播 广播 其实是以 意图(Intent)的形式表示的 发送广播 就是 通过广播发送者将”意图“(意图包含action 附带数据)发送出去。...); 补充: 解决广播安全性的方法: 1、发送广播,可以设置广播的权限:sendBroadcast(Intent,String) 第二个参数为权限,为一个字符串

    1.5K70

    Android M 特性 Doze and App Standby模式详解

    表现形式:设备没有连接到电源,设备进入Doze模式,系统将通过延迟最近用户没有使用的应用程序的后台CPU运作及网络活动,让应用程序处于App Standby状态,以此来减少电池消耗。...运行以下adb命令使系统进入Doze模式: $ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step 6....运行以下adb命令迫使系统进入App Standby模式: $ adb shell dumpsys battery unplug $ adb shell am set-inactive <packageName...Understanding App Standby 当用户触摸使用应用程序一段时间,该应用程序处于App Standby状态,系统将把该App标志为空闲状态。...App生成一个用户所能在锁屏或通知托盘看到的Notification, 而当用户设备插入电源,系统将会释放App的待机状态,允许他们自由的连接网络及其执行未完成的工作和同步。

    7.2K11

    ADB配置提权漏洞(CVE-2017-13212)原理与利用分析

    0x01 背景 adb由于拥有shell权限,因此仅在授权PC端后才可使用shell权限,而通过该漏洞,可以实现在移动端获取shell权限,以致于可随意删除应用、屏幕截图等等高权限操作。...但是,我经过尝试后发现,除了以上构造hijack攻击窗口外,还可以劫持USB广播,然后在用户进行正常的连接电脑操作,劫持授权界面,使用户误导从而进行授权。也即造成新的劫持授权漏洞方案。 影响: ?...0x02 原理分析 为了能利用此adb配置漏洞,首先需要adb connect到adbd正在监听的端口,然后移动端会发起授权验证窗口,用户授权,验证通过后,可使用adb shell命令执行shell权限操作...结论: 确实可以在移动端获取到shell权限 思考 那如果假设能监听用户是否连接USB,在用户进行正常的USB连接PC操作,劫持授权窗口,即弹出我们的授权,也可以造成用户误导授权。...结论: 确实可以构造接收广播USB连接到PC,会优先弹出我们的授权窗口,从而误导用户获得授权 攻击思路: 静态注册监听USB连接状态的广播,优先级设置为最高 一旦监听到连接,启动后台service

    2.6K90

    【Android 电量优化】电量优化特性 ( Doze 低电耗模式 | Standby 应用待机模式 | 白名单设置 | 白名单添加系统设置界面 | 指定应用的白名单添加界面 | 测试应用 )

    集中执行被延迟的 CPU 和 网络操作 ; 维护期结束后 , 再次进入 Doze 低功耗模式 , 开始延迟 CPU 和网络操作 ; 退出 Doze 低耗电模式 : 充电 唤醒设备 下图是官网给出的 Doze 工作意图...shell dumpsys deviceidle force-idle 退出 Doze 模式 : 退出 Doze 模式之后 , 测试应用运行状态 , 是否恢复正常 ; $ adb shell dumpsys...模式后 , 测试应用的运行状况 , 是否能达到要求 ; $ adb shell dumpsys battery unplug $ adb shell am set-inactive true 应用唤醒 : 退出 Standby 模式之后 , 测试应用运行状态 , 是否恢复正常 ; $ adb shell am set-inactive false $...adb shell am get-inactive 四、白名单添加 ( 方式一 ) ---- 加入了白名单以后 , 就不再受该功能限制 , 自由使用以下功能 ; 白名单添加工具类

    6.7K00

    安卓应用无响应,你真的了解吗?

    有没有可能主线程耗时也出现ANR?如何更好的调试ANR? 如果没有深入研究过Android Framework的源代码,是难以形成对ANR有一个全面、正确的理解。...不为空,且应用管道对端连接状态正常,则将数据从outboundQueue中取出事件,放入waitQueue队列 InputDispatcher通过socket告知目标应用所在进程可以准备开始干活 App...sendBroadcast(Intent intent)中的intent的flags是否包含FLAGRECEIVERFOREGROUND来决定把该广播是放入前台广播队列或者后台广播队列,前台广播队列的超时为...关于抓取trace命令,对于Java进程可通过在adb shell环境下执行kill -3 [pid]可抓取相应pid的调用栈;对于Native进程在adb shell环境下执行debuggerd -b...发生ANR从trace来看主线程却处于空闲状态或者停留在非耗时代码的原因有哪些?

    2.3K30

    Broadcasts详解「建议收藏」

    广播在某个特定事件发生被发送,例如,各种系统事件发生(如系统启动或设备开始充电),Android系统就会发送广播。...应用程序也可以发送自定义广播,例如,通知其他应用程序他们关注的事件(如数据下载完成)。 应用程序可以注册广播接收器。广播被发送,系统自动将广播传递到已注册接收该广播的应用程序。...一般来说,广播可以作为应用程序间、正常用户流之外的消息传递系统。 系统广播 各种系统事件发生,系统会自动发送广播,例如系统进入/退出飞行模式。系统广播被发送给所有注册该广播接收器的应用程序。...例如,一个进程正在运行一个广播接收器(即执行onReceive()方法中的代码),那么它被认为是一个前台进程,它会保持正常运行,除开系统有极端内存压力。...为了避免这种情况,如果你想用更多时间在后台线程中处理广播,那么你应该调用goAsync()或JobService来让系统知道进程要继续执行一些工作

    81210

    Carson带你学Android:手把手教你学会广播组件-BroadcastReceiver

    再回到此Activity,是从onCreate方法开始执行。...5.2.3 两种注册方式的区别 5.3 广播发送者向AMS发送广播 5.3.1 广播的发送 广播 是 用”意图(Intent)“标识 定义广播的本质 = 定义广播所具备的“意图(Intent)” 广播发送...= 广播发送者 将此广播的“意图(Intent)”通过sendBroadcast()方法发送出去 5.3.2 广播的类型 广播的类型主要分为5类: 普通广播(Normal Broadcast) 系统广播...); //发送广播 sendBroadcast(intent); 若被注册了的广播接收者中注册intentFilter的action与上述匹配,则会接收此广播(即进行回调onReceive())。...Intent.ACTION_SHUTDOWN 重启设备 Intent.ACTION_REBOOT 注:使用系统广播,只需要在注册广播接收者定义相关的action即可,并不需要手动发送广播系统有相关操作时会自动进行系统广播

    65810

    四大组件的纽带——Intent

    前面学习Activity己经多次使用了 Intent,一个Activity需要启动另一个Activity, 程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图...发送广播 广播是任何应用均可接收的消息。系统将针对系统事件(例如:系统启动或设备开始充电)传递各种广播。...通过将 Intent 传递给 sendBroadcast()、sendOrderedBroadcast() 或 sendStickyBroadcast(),可以将广播传递给其他应用。...在程序中,如果需要在本应用中启动其他的Activity,可以使用显式意图来启动Activity,其本例代码具体如下: // 创建Intent对象 Intent intent = new Intent...使用这种方式开启的Activity,意图非常明显,因此称之为显式Intent,也叫做显式意图。 02隐式Intent 没有明确指定组件名的Intent称为隐式Intent,又叫隐式意图

    1K50

    安卓软件开发_应用程序UI组件意外停止

    当应用程序中的任何代码需要执行时,Android将启动进程;它不在需要和系统资源被其他应用程序请求,Android将关闭进程。...相反,需求产生它只是启动其他应用程序块。 对于这个工作,当应用程序的任何部分被请求,系统必须能够启动一个应用程序的进程,并实例化该部分的Java对象。...BroadcastReceiver类: 是接受sendBroadcast()发送的意图(intents)的基类。...因为暂停你不会收到意图,注销它将削减不必要的系统开销。不要在Activity.onSaveInstanceState()中注销它,因为它将不会被调用,如果用户移动到先前的堆栈。...有两种主要的可接受广播类型: 正常广播(由Context.sendBroadcast发送)是完全异步的。所有的广播接收者以无序方式运行,往往在同一间接收。

    1K10
    领券