Ich schrieb einen Dienst, der BroadcastReceiver verwendet, um eine der Media-Tasten ("Play-Taste" von einem Headset) zu erfassen, und es funktioniert perfekt auf Android 2.3.x (HTC Nexus One oder HTC Desire)Capture Media Button auf Android> = 4.0 (funktioniert auf 2.3)
Wenn ich versuchte, auf Android 4.0.3 (Samsung Nexus S) läuft es nicht funktioniert (meine Anwendung erhält keine Absicht "android.intent.action.MEDIA_BUTTON" und " play "Taste verhält sich wie gewohnt: stoppt/startet Musik.
Inhalt des manifest:
... <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name=".buttonreceiver.MediaButtonIntentReceiver" > <intent-filter android:priority="10000" > <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver> ...
Gibt es so, wie es auf Android 4.0.3
bearbeiten arbeiten zu machen: Ich habe vorgeschlagene Lösung versuchen, ich habe hinzugefügt Aktion und laufen es, aber mein Empfänger erhält immer noch keine Absicht. Was ist seltsamer Registrierung Empfänger durch Code funktioniert auch nicht:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about_and_activation_view);
Log.d("MR", "onCreate - " + getIntent().getAction());
mReceiver = new MediaButtonIntentReceiver();
registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_MEDIA_BUTTON));
}
Jetzt bin ich total verwirrt.
Beachten Sie auch, dass Intent Priorität größer als -1000 sein muss und weniger als 1000. – William