当我按下音量减小按钮时,音量减小和音量增大都按下 android studio broadcast reciever

when i press volume down button, both volume down and volume up pressed android studio broadcast reciever

我正在尝试检测是否在 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 这是因为当用户点击音量按钮并且值为 0 时,这意味着他/她正在按下降低音量

您可以轻松区分先前值和当前值。 就让

int delta = previous - current;
if(delta < 0)
{
  //you are pressing volume up
}
else if(delta > 0)
{
 // you are pressing volume down
}

希望这个回答能解决您的问题