Ho scritto un servizio che utilizza BroadcastReceiver per acquisire uno dei pulsanti multimediali ("tasto play" da un auricolare) e funziona perfettamente su Android 2.3.x (HTC Nexus One o HTC Desire)Pulsante media acquisizione su Android> = 4.0 (funziona su 2.3)
Quando ho provato a eseguire su Android 4.0.3 (Samsung Nexus S) non funziona (la mia applicazione non riceve intento "android.intent.action.MEDIA_BUTTON" e " play "si comporta come al solito: ferma/avvia la musica).
Contenuto dei manifesti:
... <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> ...
C'è modo per farlo funzionare su Android 4.0.3
EDIT: ho provare soluzione proposta, che ho l'azione ed eseguire aggiunto ma il mio ricevitore continua a non ricevere intenzioni. Che cosa è più strano ricevitore registrazione per codice, inoltre, non funziona:
@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));
}
Ora io sono totalmente confuso.
Si noti inoltre che la priorità intenti deve essere maggiore di -1000 e meno di 1000. – William