1

好吧,我编写了一个从拨打特定号码开始的应用程序,我使用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}

然后广播接收器在模拟器上注册,看起来我的应用程序需要启动才能注册广播接收器

4

1 回答 1

3

我在 android 文档中找不到任何东西,但是在花了几个小时在不同的设备上测试这个案例之后,我发现广播接收器只在应用程序执行后注册。因此,显然必须在安装后启动一项活动,然后一切正常。

于 2013-07-15T12:56:18.213 回答