47

我想BROADCAST RECEIVER检查BOOT_COMPLETED.emulator

有什么方法可以检查模拟器中的广播接收器吗?如何重新启动模拟器以检查该接收器?有没有直接的命令?

提前致谢。

4

6 回答 6

57

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

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

并且从 Eclipse 的 AVD 管理器开始Start/Restart,您的带有 BOOT_COMPLETE 操作的 BroadcastReceiver肯定会被调用

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

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

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


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

于 2012-07-04T09:37:28.967 回答
44

基本上,这是您在运行时在 Android 模拟器中模拟启动完成所必须做的:假设您是Windows用户。这同样适用于Linux

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

  1. 亚行外壳

  2. 正在广播 -a android.intent.action.BOOT_COMPLETED

就这些了。有关详细说明,请参见下图

在此处输入图像描述

快乐编码!

于 2013-11-15T12:18:19.443 回答
35

如果两次收到 BOOT_COMPLETED ,某些应用程序可能会出现异常行为,而是将广播限制为仅对您的包:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.example.package
于 2015-05-23T00:07:04.157 回答
7

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

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

没有root,命令失败:报警管理器不发送广播:

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)
于 2019-08-25T16:38:17.970 回答
2

如果您使用风味,请注意.组件名称快捷方式表示法。

例子

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.companyname.develop/com.companyname.notification.RescheduleLocalNotificationsAtBootReceiver
于 2016-05-02T17:41:53.657 回答
0

要重新启动模拟器,只需打开命令行并切换到 adb 所在的文件夹(如果不在系统路径中)并输入:

adb restart

(然后您可以使用 Strg - C 中止命令以返回 cmd 行)

于 2012-07-04T09:38:25.513 回答