Мне нужна помощь, чтобы понять, когда я могу ожидать, что мой вещательный приемник будет работать, только будучи зарегистрированным в манифесте, или должен быть зарегистрирован из текущей активности или службы.
Так, например, если я зарегистрирую автономный приемник со следующим фильтром намерений, он работает без ссылки на службу/деятельность:
<?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.media.AUDIO_BECOMING_NOISY
на android.intent.action.HEADSET_PLUG
, приемник не запускается (Android-документация)
Из того, что я нашел на этом сайте, вам необходимо зарегистрировать этот ресивер из активности или службы, которая уже работает для работы (Сообщение).
-
Может ли кто-нибудь сказать мне, почему это не работает, когда вы просто корректируете свой фильтр намерений в манифесте и почему вам нужно, чтобы служба работала в фоновом режиме, которая ссылается/регистрирует ресивер?
-
Есть ли работа, чтобы я мог просто зарегистрировать приемник в своем манифесте приложения, используя фильтр намерений с
android.intent.action.HEADSET_PLUG
? -
Как я могу определить, какие действия в трансляции из документации по android должны иметь сервис или активность, зарегистрировать их или просто иметь правый фильтр в манифесте?