好吧,我写了一个应用程序,首先拨打一个特定的号码,我使用了 NEW_OUTGOING_CALL (广播接收器)来捕捉拨号事件。 到目前为止,AndroidManifest.xml上的广播接收器类似于以下代码:
<receiver android:name=".CustomBroadCastReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
问题在于,当我在新系统上尝试它时,它首先不起作用,但经过几次测试后,它就开始工作了。 我检查了android日志,并认为它甚至没有注册为广播接收器。 我在Android参考中找不到这种行为的原因,并想知道是否有人遇到同样的问题并找到了解决方案,
请考虑这个广播的接收器被认为是我的应用程序的起始触发器
我还读过一些关于已停止的包的内容,我想知道它是否与我的情况有关,如果有,是否有办法在AndroidManifest.xml上设置标志,如FLAG_INCLUDE_STOPPED_PACKAGES
======被修改==
我第一次在 adb shell
上调用以下命令am broadcast -n com.package.name/.StartApp
此行出现在模拟器的日志
上06-15 11:17:53.216: INFO/ActivityManager(74): Start proc com.package.name for broadcast com.package.name/.StartApp: pid=2153 uid=10041 gids={3003}
然后广播接收器在模拟器上注册,看起来我的应用程序需要启动才能注册广播接收器
答案 0 :(得分:3)
我在android文档中找不到任何东西,但是在不同的设备上花了几个小时测试这个案例后,我发现广告接收器只在执行应用程序后注册。因此,显然必须在安装后启动一项活动,然后一切都运行良好。