我想BROADCAST RECEIVER
检查BOOT_COMPLETED
.emulator
有什么方法可以检查模拟器中的广播接收器吗?如何重新启动模拟器以检查该接收器?有没有直接的命令?
提前致谢。
我想BROADCAST RECEIVER
检查BOOT_COMPLETED
.emulator
有什么方法可以检查模拟器中的广播接收器吗?如何重新启动模拟器以检查该接收器?有没有直接的命令?
提前致谢。
模拟器中没有像设备一样的电源按钮,所以
要停止模拟器实例,只需关闭模拟器的窗口。
并且从 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 模拟器和使用模拟器
基本上,这是您在运行时在 Android 模拟器中模拟启动完成所必须做的:假设您是Windows用户。这同样适用于Linux
步骤:在您的控制台类型上
亚行外壳
正在广播 -a android.intent.action.BOOT_COMPLETED
就这些了。有关详细说明,请参见下图。
快乐编码!
如果两次收到 BOOT_COMPLETED ,某些应用程序可能会出现异常行为,而是将广播限制为仅对您的包:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.example.package
在 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)
如果您使用风味,请注意.
组件名称快捷方式表示法。
例子
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.companyname.develop/com.companyname.notification.RescheduleLocalNotificationsAtBootReceiver
要重新启动模拟器,只需打开命令行并切换到 adb 所在的文件夹(如果不在系统路径中)并输入:
adb restart
(然后您可以使用 Strg - C 中止命令以返回 cmd 行)