我想知道实际上是否可以对Android应用程序中的耳机音量控制按钮作出反应。每当我使用支持iPhone / iPod的耳机时,我都可以使用带有各种音乐应用程序的暂停/前进/后退按钮,但是没有人可以对音量控制做出反应。
我经常搜索,但没有找到任何直接解决此问题的内容。
我很好奇这是对Android平台还是我正在使用的应用的限制。如果不是限制,我如何从我自己的Android应用程序中的耳机中捕获音量摇杆事件。
iPhone / iPod似乎能够通过3.5毫米插孔对所有耳机事件作出反应。在我看来它也应该可以在Android中使用。
答案 0 :(得分:1)
这是100%与应用程序本身相关的问题。有很多很好的例子来解决这个问题。例如,您可以通过以下方式解决此问题:
private MPR mediaPlayerReceiver = new MPR();
onCreate() {
...
IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
// this is nasty, since most apps set it to 9999, so you need to be higher
mediaFilter.setPriority(999);
this.registerReceiver(mediaPlayerReceiver, mediaFilter);
...
}
MPR extends BroadcastReceiver {
public MPR() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
try {
int action = event.getAction();
switch(action) {
case KeyEvent.ACTION_DOWN :
// handle play/pause here
break;
}
} catch (Exception e) {
// something bad happened
}
abortBroadcast();
}
}