1

我正在编辑 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();
    }
4

0 回答 0