最佳答案
我需要一些帮助来理解我的广播接收器在刚刚在清单中注册时和必须从正在运行的活动或服务中注册时什么时候能够正常工作。
例如,如果我用下面的意图过滤器注册一个独立的接收器,它不需要服务/活动引用就可以工作:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blk_burn.standalonereceiver"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name="TestReceiver">
<intent-filter>
<action android:name="android.media.AUDIO_BECOMING_NOISY"/>
</intent-filter>
</receiver>
</application>
</manifest>
但是如果我用 android.intent.action.HEADSET_PLUG
代替 android.media.AUDIO_BECOMING_NOISY
,接收器就不会被触发(Android 文档)
根据我在这个网站上发现的情况,您必须从已经在运行的活动或服务(邮局)中注册该接收器。
有人能告诉我为什么这不工作时,只是调整你的意图过滤器在清单和为什么你需要有一个服务在后台运行,引用/注册接收方?
是否有一个工作周围,以便我可以只注册我的接收器在我的应用程序的清单使用意图过滤器与 android.intent.action.HEADSET_PLUG
?
如何识别 机器人文档中哪些广播操作需要服务或活动注册它们,而不是仅仅在清单中使用正确的过滤器?