android - 当我按下降低音量按钮时,降低音量和提高音量都按下了 android studio 广播接收器

我正在尝试检测是否在 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
}

我希望这个答案能解决你的问题

相似文章

随机推荐

最新文章