我正在开发应用程序,无论我的应用程序是后台还是前台,当您长按向上或向下音量按钮时,我想为用户提供执行特定操作的工具。
我也想在手机屏幕关闭时实现这个功能,但在堆栈溢出帖子中说你不能这样做。
我已经使用android.media.VOLUME_CHANGED_ACTION
广播侦听器进行音量按钮按下检测,无论您的应用程序是背景,它都能正常工作,但问题是我想检测这些按钮的长按。
如何将此代码包含到我的广播中,以便我可以长时间检测向上或向下按钮。
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
// Do something here...
// Needed to track long presses
Log.e("Main activity", "KEYCODE_VOLUME_UP");
return true;
}
return super.onKeyDown(keyCode, event);
}
这是我的广播接收器
intentfliter = new IntentFilter("android.media.VOLUME_CHANGED_ACTION");
mReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.e("Main activity", "Volume button press");
}
};
getApplicationContext().registerReceiver(mReceiver, intentfliter);
manager.registerMediaButtonEventReceiver(getCallingActivity());
}