我正在尝试接收物理按钮事件,例如手机侧面的音量按钮点击。我需要在服务中执行此操作,因为如果用户随时单击音量增大/减小按钮,我想接收。我在网上阅读了很多内容,但我无法使其正常工作,也不知道可能出了什么问题。这是我的代码:
在清单中:
<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();
}
}