标签:
实践后的结论:
下面两种都可以获取到音量键的东西, 测试的时候,发现
KeyEvent.KEYCODE_VOLUME_UP 一直按住的时候, 三星的一款平板计数到200,就不在触发该事件;
所以改为 KeyEvent.ACTION_DOWN 时启动一个方法用来计数, KeyEvent.ACTION_UP的停止技数;
package com.akm.testvolume;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
}
int count = -1;
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
if (action ==KeyEvent.ACTION_DOWN) {
tv.setText("+++++++++ACTION_DOWN++++++"+ count++);
return true;
}
if (action== KeyEvent.ACTION_UP) {
tv.setText("+++++ACTION_UP++++++++++");
return true;
}
return super.dispatchKeyEvent(event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN:
tv.setText("-----------------"+count);
count--;
return true;
case KeyEvent.KEYCODE_VOLUME_UP:
tv.setText("++++++++++++++++"+ count);
count++;
return true;
case KeyEvent.KEYCODE_VOLUME_MUTE:
tv.setText("MUTE");
return true;
}
return super.onKeyDown(keyCode, event);
}
}标签:
原文地址:http://blog.csdn.net/aikongmeng/article/details/42419527