我正在编辑csipsimple https://play.google.com/store/apps/details?id=com.csipsimple&hl=en 添加按键通话按钮。当我在通话期间(在应用程序键盘上)拨打* 9时,我可以推动通话。当我按#9时,它会关闭此模式。这一切都是手动的。 我写了一个方法,用一个按钮按下这些键,所以你不必每次都弹出键盘并按下代码。但是呼叫模式没有改变,我不知道为什么。我在另一个sip应用程序中尝试了同样的事情并且它有效。 这种方法有什么问题吗?
是否有不同的方式发送按键(我甚至不知道他们是否被发送,我不知道我怎么知道,应用程序键盘是屏幕外的弹出窗口,但我可以看到按钮到当我按下按钮发送键时,调出键盘会突出显示)
public void pushtotalk3(final View view) {
final boolean on = ((ToggleButton) view).isChecked();
((ToggleButton) view).setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
if (on) {
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_NUMPAD_MULTIPLY);
Thread.sleep(500);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_9);
Thread.sleep(500);
runOnUiThread(new Runnable() {
public void run() {
((ToggleButton) view).setBackgroundResource(R.drawable.btn_blue_glossy);
((ToggleButton) view).setEnabled(true);
}
});
} else {
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_POUND);
Thread.sleep(500);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_9);
Thread.sleep(500);
runOnUiThread(new Runnable() {
public void run() {
((ToggleButton) view).setBackgroundResource(R.drawable.btn_lightblue_glossy);
((ToggleButton) view).setEnabled(true);
}
});
}
} catch (InterruptedException e) {
Log.d(TAG, "Failed to send keycodes: " + e.getMessage());
}
}
}).start();
}