我正在尝试检测是否在 android 中单击了提高音量或降低音量按钮
但是当我运行代码并测试应用程序时,按下提高音量按钮工作正常
但是当我按下音量调低也按下音量调高。
这是我的代码:
public class VolumeKeyChangeListener extends BroadcastReceiver {
int previousValue = 0, currentValue = 0;
@Override
public void onReceive(Context context, Intent intent) {
currentValue = (Integer) intent.getExtras().get("android.media.EXTRA_VOLUME_STREAM_VALUE");
// Log.e("current value", "tis" + currentValue);
// Log.e("previous value", "tis" + previousValue);
if (currentValue >= previousValue && currentValue != 0)
{
Log.e("Volume up pressed", "message" + currentValue);
HandleBasicRequest.notifyVLC(context.getApplicationContext(), "volume&val=+10");
}
else
{
Log.e("Volume down pressed", "message" + currentValue);
HandleBasicRequest.notifyVLC(context.getApplicationContext(), "volume&val=-10");
}
previousValue = currentValue;
currentValue = 0;
}
}
如果你问我为什么我使用 currentValue != 0 这是因为每当用户点击音量按钮并且 value 为 0 这意味着他/她正在按下音量
回答1
您可以轻松区分以前和当前的 values。只是让
int delta = previous - current;
if(delta < 0)
{
//you are pressing volume up
}
else if(delta > 0)
{
// you are pressing volume down
}
我希望这个答案能解决你的问题