当我按下音量减小按钮时,音量减小和音量增大都按下 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
}
希望这个回答能解决您的问题
我正在尝试检测是否在 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
}
希望这个回答能解决您的问题