Java 如何在android中识别在指定时间段内按音量按钮
使用这个android应用程序,我想确定是否有人按下了音量上升按钮或音量下降按钮超过2秒。这就是我到目前为止已经实现的 MainActivity.java文件Java 如何在android中识别在指定时间段内按音量按钮,java,android,onkeydown,Java,Android,Onkeydown,使用这个android应用程序,我想确定是否有人按下了音量上升按钮或音量下降按钮超过2秒。这就是我到目前为止已经实现的 MainActivity.java文件 package com.example.hardwarebuttton2; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.KeyEvent; import android.view.M
package com.example.hardwarebuttton2;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN && event.getEventTime()>2000){
Toast.makeText(getBaseContext(), "volume down button pressed for 2 seconds", Toast.LENGTH_SHORT).show();
return true;
}
if(keyCode==KeyEvent.KEYCODE_VOLUME_UP && event.getEventTime()>2000){
Toast.makeText(getBaseContext(), "volume up button pressed for 2 seconds", Toast.LENGTH_SHORT).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
这段代码的作用是不计算2秒,只要我按下音量上升或下降按钮,它就会给出输出。那么,这段代码有什么问题呢。如果有人能告诉我如何解决这个问题,我将不胜感激。event.getEventTime返回上升或下降的时间,而不是自上次事件以来的时间。您要做的是,当您看到向下时存储事件时间,当您看到向上时,从事件时间中减去存储的值。这将为您提供经过的时间。如果经过的时间超过2秒,则执行您想执行的任何操作。谢谢。使用,long-time=event.getEventTime();我可以确定事件的开始时间。那么如何确定事件完成时间。事件开始时间是在onKeyDown中看到键时。完成时间是在onKeyUp中看到的。看到这个了吗