我想在BROADCAST RECEIVER
中查看BOOT_COMPLETED
行动emulator
。
有没有办法在模拟器中检查广播接收器?如何重新启动模拟器来检查接收器?有没有直接命令?
提前致谢。
答案 0 :(得分:54)
模拟器中没有像设备那样的电源按钮,所以
要停止模拟器实例,只需关闭模拟器的窗口。
要Start/Restart
它从Eclipse的AVD Manager 开始,而带有BOOT_COMPLETE操作的BroadcastReceiver将被称为肯定
您也可以通过另一种方式启动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 Emulator和Using Emulator
答案 1 :(得分:41)
基本上,这是在运行时模拟Android Emulater中的引导完成所要做的事情:假设您是 Windows 用户。同样适用于<强> 的Linux 强>
步骤:在您的控制台类型
上adb shell
am broadcast -a android.intent.action.BOOT_COMPLETED
这就是所有人。 请参阅下图以获取详细说明。
快乐编码!
答案 2 :(得分:26)
如果两次收到BOOT_COMPLETED,有些应用可能会出错,而只是限制广播到您的包中:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.example.package
答案 3 :(得分:2)
如果您正在使用flavor,请注意.
组件名称快捷方式表示法。
实施例
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.companyname.develop/com.companyname.notification.RescheduleLocalNotificationsAtBootReceiver
答案 4 :(得分:1)
要重新启动模拟器,只需打开命令行并切换到adb所在的文件夹(如果不在系统路径中),然后输入:
adb restart
(然后您可以使用Strg-C中止命令以获取cmd行)
答案 5 :(得分:0)
在我的Lollipop模拟器上,它要求我以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)