我希望能够在我的应用程序中接收物理按钮事件,例如手机侧面的音量按钮点击。我需要在服务中完成此操作,因为我想在任何时候都能接收到用户按下音量加/减按钮的事件。
我在网络上阅读了很多资料,但我还是无法使其正常工作,也不知道哪里出了问题。这是我的代码:
在清单文件中:
<receiver android:name=".clsMediaButtonReceiver" >
<intent-filter android:priority="1000" >
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
在服务的OnStart()方法中:
AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE);
manager.registerMediaButtonEventReceiver(new ComponentName(getPackageName(), clsMediaButtonReceiver.class.getName()));
关于广播接收器:
public class clsMediaButtonReceiver extends BroadcastReceiver
{
@Override public void onReceive(Context context, Intent intent)
{ //This is never shown
Toast toast1 = Toast.makeText(Context, intent.getAction(), Toast.LENGTH_SHORT);
toast1.show();
}
}