Un support de Capture bouton sur Android >=4.0 (fonctionne sur 2,3)

J'ai écrit certains de service qui utilise BroadcastReceiver de capturer l'un des boutons de médias (le bouton"lecture" à partir d'un casque), et il fonctionne parfaitement sur android 2.3.x (HTC Nexus One ou HTC Desire)

Quand j'ai essayé de courir sur Android 4.0.3 (Samsung Nexus S), il ne fonctionne pas (mon application ne reçoit pas l'intention "d'android.l'intention.d'action.MEDIA_BUTTON" et le bouton "play" se comporte comme d'habitude: les arrêts/démarrages de la musique).

Contenu manifeste:

...
<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>
...

Est-il moyen de le faire fonctionner sur android 4.0.3


edit: j'ai essayer la solution proposée, j'ai ajouté de l'action et de l'exécuter, mais mon récepteur ne fonctionne toujours pas recevoir de l'intention. Ce qui est plus étrange inscription récepteur par le code ne fonctionne pas:

@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));
}

Maintenant, je suis totalement confus.

Notez également que l'Intention de priorité doit être supérieure à -1000 et moins de 1000.

OriginalL'auteur Marek R | 2012-05-10