1

ねえ、通話中に 1 または 2 を押したいのですが。たとえば、コールセンターに電話して、この番号を手でクリックせずに1つのキーを押して営業部門に行きたいが、通話中に問題なくクリックしたい場合。

これで、キープレスを呼び出して呼び出しイベントを処理できますが、機能しません。

PhoneStateListener myCallListener = new PhoneStateListener(){
            @Override
            public void onCallStateChanged(int state, String incomingNumber) {
            // the variable incomingNumber holds the number calling.
            // the state variable holds the state of the phone (Ringing, Idle ...)
              switch (state) {
              case TelephonyManager.CALL_STATE_RINGING:
                  Log.e("Incoming_call", incomingNumber+" is calling me ...");
                  break;
                case TelephonyManager.CALL_STATE_OFFHOOK:
                    KeyEvent eventDown = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_1);
                    dispatchKeyEvent(eventDown);
                  // your logic here, right now the incoming caller is logged.
                  Log.e("Out Call", incomingNumber+" is calling me ...");
                break;
                default:
                break;
            }
            super.onCallStateChanged(state, incomingNumber);
           }
        };
        TelephonyManager phoneManager = (TelephonyManager) 
        this.getSystemService(TELEPHONY_SERVICE);
        phoneManager.listen(myCallListener,
        PhoneStateListener.LISTEN_CALL_STATE);
4

2 に答える 2

1

プログラムで呼び出しを行い、必要に応じて DTMF トーンと一時停止を追加することができます。

Intent i = new Intent("android.intent.action.CALL",Uri.parse("tel://" + number + ',' + dtmf));

DTMF トーンをオーディオ アップリンクに挿入することは要求された機能ですが、コールの途中で決定することはできません。

于 2012-05-18T16:56:08.340 に答える
0

コードは、電話アプリケーションではなく、アクティビティのキーダウンイベントを生成します。

私の知る限り、あなたが望むことを達成することは不可能ですが、私は間違っている可能性があります。ただし、可能であれば、それは潜在的な問題です。これは、アプリケーションが通話中にタッチトーンを送信し、ユーザーが気付かないうちに悪いことを引き起こす可能性があるためです。

于 2012-05-18T16:48:27.440 に答える