如何在模拟器中测试BOOT_COMPLETED广播接收器

Chi*_*rag 43 android broadcastreceiver android-emulator

我想检查BROADCAST RECEIVER与行动BOOT_COMPLETEDemulator.

有没有办法在模拟器中检查广播接收器?如何重新启动模拟器来检查接收器?有直接命令吗?

提前致谢.

MKJ*_*ekh 54

模拟器中没有像设备那样的电源按钮,所以

要停止模拟器实例,只需关闭模拟器的窗口.

Start/Restart它的AVD Manager开始,你的BroadcastReceiver与BOOT_COMPLETE动作将被确实调用

你可以用另一种方式启动AVD,从CMD 转到AndroidSDK的工具并给出这个命令E:\android-sdk-windows\tools>emulator -avd AVDNAMEHERE

要从CMD发送广播,您可以使用此命令.

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n package_name/class_name


阅读有关Android模拟器的更多信息:Android模拟器使用模拟器

  • ```-a android.intent.action.BOOT_COMPLETED```亚行外壳AM广播是设备重启完全足够了. (10认同)
  • 不幸的是,发送该广播会导致我的Nexus 5真正*重启,而不仅仅是广播该消息.结果,调试器断开连接./ sigh发送这样的广播应该以更容易使用的方式访问开发者:-( :--( (9认同)
  • 广播:I​​ntent { act=android.intent.action.BOOT_COMPLETED flg=0x400000 pkg=com.myapp.package } 安全异常:权限拒绝:不允许从 pid=11148、uid=2000 发送广播 android.intent.action.BOOT_COMPLETED (5认同)
  • 它也重新启动了Nexus 6,没有额外的命令 (2认同)

Fre*_*eki 42

基本上,这是在运行时模拟Android Emulater中的引导完成所要做的事情:假设您是Windows用户.同样适用于Linux

步骤:在您的控制台类型上

  1. adb shell

  2. 我广播了-a android.intent.action.BOOT_COMPLETED

就这些了.请参阅下图以获取详细说明.

在此输入图像描述

快乐的编码!

  • 获取java.lang.SecurityException:Permission Denial:不允许从pid = 203 99发送广播android.intent.action.BOOT_COMPLETED,uid = 2000 (19认同)
  • 如果你想要一个衬垫,那就是'adb shell su -c am broadcast -a android.intent.action.BOOT_COMPLETED` (3认同)
  • 对于出现 SecurityException 的用户,请在 adb shell 之前尝试 adb root (2认同)

ejb*_*boy 30

如果两次收到BOOT_COMPLETED,某些应用可能会出错,而只是限制广播到您的套餐:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.example.package
Run Code Online (Sandbox Code Playgroud)

  • 为了一个奇怪的乐趣,我复制了命令而没有添加我的包名,希望我能看到一些应用程序"真的"行为不端.它杀死了几乎所有其他应用程序并稍微重启了设备 值得... :) (7认同)

pet*_*ula 5

在 Qemu 上的 Lollipop x86 模拟器上,它要求我以 root 身份运行:

adb shell su root am broadcast -a android.intent.action.BOOT_COMPLETED

没有root,命令失败:alarm manager 不发送广播:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED }
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=26595, uid=2000
    at android.os.Parcel.readException(Parcel.java:1684)
    at android.os.Parcel.readException(Parcel.java:1637)
    at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3537)
    at com.android.commands.am.Am.sendBroadcast(Am.java:772)
    at com.android.commands.am.Am.onRun(Am.java:404)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
    at com.android.commands.am.Am.main(Am.java:121)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
Run Code Online (Sandbox Code Playgroud)