Capture o botão de mídia no Android> = 4.0 (funciona em 2.3)
Eu escrevi algum serviço que usa BroadcastReceiver para capturar um dos botões de mídia ("play button" de um fone de ouvido), e funciona perfeitamente no Android 2.3.x (HTC Nexus One ou HTC Desire)
Quando eu tentei rodar no Android 4.0.3 (Samsung Nexus S) ele não funciona (meu aplicativo não recebe a intenção "android.intent.action.MEDIA_BUTTON" e o botão "play" se comporta normalmente: stops / starts música).
Conteúdo do manifesto:
<code>... <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> ... </code>
Existe uma maneira de fazê-lo funcionar no android 4.0.3
edit: Eu tentei a solução proposta, adicionei a ação e a executei, mas o meu receptor ainda não recebe a intenção. O que é mais estranho registrar o receptor pelo código também não funciona:<code>@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)); } </code>
Agora estou totalmente confuso.