RegisterMediaButtonEventReceiver / manejo de botones de volumen tema

En mi aplicación necesito procesar eventos de botón físicos como clics de botón de volumen. Para eso estoy usando el método registerMediaButtonEventReceiver de audiomanager. Hay un artículo relevante para mi situación, aunque no puedo conseguir que funcione.

Aquí está el código que estoy usando:

public class VolumeBroadcastActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE); manager.registerMediaButtonEventReceiver(new ComponentName(getPackageName(), RemoteControlReceiver.class.getName())); } public class RemoteControlReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(VolumeBroadcastActivity.this, "1",1).show(); if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { } } } } <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="localhost.volume.broadcast" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".VolumeBroadcastActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="RemoteControlReceiver"> <intent-filter> <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver> </application> </manifest> 

Su clase RemoteControlReceiver es una clase interna de VolumeBroadcastActivity . Su manifiesto no lo dice y no creo que pueda hacerlo. Hacer una clase regular y preceder a su android:name con un punto.

Es posible que necesite este permiso (declarar en manifiesto): uses-permission android: name = "android.permission.BLUETOOTH"

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.