广播ACTION_PACKAGE_ADDED或action_package_replace不调用从AndroidStud



我有一个Android项目,有两个应用程序。

AppA从代码(不在其清单中)注册ACTION_PACKAGE_ADDEDACTION_PACKAGE_REPLACED操作的接收器。

当我用adb install AppB.apk从命令行安装AppB时,我看到来自AppA的BroadcastReceiver按预期接收广播意图。

当我直接从AndroidStudio部署AppB(启动调试按钮):BroadcastReceiver从AppA不接收任何广播意图。

是预期的吗?当apk与启动调试按钮一起部署时,在AndroidStudio中是否有什么可以做/setup来强制广播?

What I tried ?

尝试1:

我用选项"Always install with PackageManager"(在AndroidStudio启动配置窗口),但它没有帮助。

尝试2:

AndroidStudio启动配置提供了在启动前执行外部工具的能力。因此,我试图通过在启动AppB之前执行:adb shell am broadcast -a android.intent.action.PACKAGE_ADDED -d com.company.app.b -t package来显式广播PACKAGE_ADDED动作。

不幸的是,这会生成一个java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.PACKAGE_ADDED,这并不奇怪,因为PACKAGE_ADDED当然是一个受保护的广播。

是否可以禁用即时运行Android工作室和尝试。当启用即时运行时,Android studio能够直接替换索引文件,这可能是您没有获得add或replace操作的潜在原因。

你可以用指定的Action name从B应用程序发送一个广播,并在应用程序a中注册它

相关内容

  • 没有找到相关文章

最新更新