我终于设法读取踏板输入。 @ emrys57是正确的,用4针连接器替换插孔,以与挂钩按钮的麦克风相同的方式触发输入。但偶尔它也会触发音量和音量降低键。我想这与我用刀和胶带取代4针插孔有关。
这是相当简单的覆盖的onkeyup。请注意,您还必须覆盖onKeyDown以防止默认行为:
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
int action = event.getAction();
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_HEADSETHOOK) {
if (action == KeyEvent.ACTION_UP) {
Log.d(TAG, "action_up");
clickStart(null);
return true;
} else if (action == KeyEvent.ACTION_DOWN) {
Log.d(TAG, "action_down");
return true;
} else {
Log.d(TAG, "action:" + action);
return true;
}
}
return false;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
int action = event.getAction();
Log.d(TAG, "onKeyDown!");
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_HEADSETHOOK) {
if (action == KeyEvent.ACTION_UP) {
Log.d(TAG, "action_up");
clickStart(null);
return true;
} else if (action == KeyEvent.ACTION_DOWN) {
Log.d(TAG, "action_down");
return false;
} else {
Log.d(TAG, "action:" + action);
return true;
}
}
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
Log.d(TAG, "returning false");
return false;
}
有趣的问题(我没有线索,但想知道我自己)。我可以看到一个车库乐队风格的应用程序,允许手动输入,如转台或其他电子输入(乐器)。 –
考虑到[square reader](https://squareup.com/reader)基于使用音频端口,我想象你所要求的也是可能的。 –
该踏板似乎内部没有其他电位器。该连接器是一个3针插孔(使用图像上的变焦),因此它可能将插头的一端连接到插孔的接地插针,因此另一端和插座的滑块连接到另外两个插孔引脚。三星插孔在http://pinoutsguide.com/CellularPhones-P-W/samsung_galaxy_headset_pinout.shtml。所以锅连接到左右音频输出,而不是麦克风。没有希望。 – emrys57