Ich brauche Hilfe, um zu verstehen, wann ich erwarten kann, dass mein Rundfunkempfänger funktioniert, wenn er nur im Manifest registriert ist, anstatt von einer laufenden Aktivität oder einem laufenden Dienst registriert zu werden.
Wenn ich beispielsweise einen eigenständigen Empfänger mit dem folgenden Absichtsfilter registriere, funktioniert er ohne einen Dienst- / Aktivitätsverweis darauf:
<?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>
Allerdings, wenn ich android.media.AUDIO_BECOMING_NOISY
mit android.intent.action.HEADSET_PLUG
dem Empfänger ersetze, wird nicht ausgelöst ( Android-Dokumentation )
Nach dem, was ich auf dieser Site gefunden habe, müssen Sie diesen Empfänger von einer Aktivität oder einem Dienst registrieren, der bereits ausgeführt wird, damit er funktioniert ( Post ).
Kann mir jemand sagen, warum dies nicht funktioniert, wenn Sie nur Ihren Absichtsfilter im Manifest anpassen und warum im Hintergrund ein Dienst ausgeführt werden muss, der auf den Empfänger verweist / ihn registriert?
Gibt es eine Problemumgehung, mit der ich meinen Empfänger mithilfe eines Absichtsfilters mit im Manifest meiner App registrieren kann
android.intent.action.HEADSET_PLUG
?Wie kann ich anhand der Android-Dokumentation feststellen, welche Broadcast-Aktionen von einem Dienst oder einer Aktivität registriert werden müssen, anstatt nur den richtigen Filter im Manifest zu haben?