0

在我的 android 应用程序中,我想从应用程序中呼叫一个人,如果呼叫成功连接(大约 2 次响铃后),则挂断呼叫。我可以通过这个号码拨打这个号码,但是有没有办法在 2 次响铃或单次响铃后挂断电话并获取事件?

我的调用代码看起来像

String posted_by = "1234567890";

         String uri = "tel:" + posted_by.trim() ;
         Intent intent = new Intent(Intent.ACTION_CALL);
         intent.setData(Uri.parse(uri));
         startActivity(intent);

我是android新手请帮助,在此先感谢

4

2 回答 2

1

您可以在接收器中使用以下内容:

/** The listener. */
    private final PhoneStateListener listener = new PhoneStateListener() {

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {

            switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:

                Log.d("TAG", "IDLE");

                if (incomingNumber.equalsIgnoreCase("phoneNumber")) {

                    if (audiomanager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL) {

                        audiomanager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

                    } else if (audiomanager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE) {

                        audiomanager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

                    }
                }

                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:

                Log.d("TAG", "OFFHOOK");

                audiomanager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

                break;

            case TelephonyManager.CALL_STATE_RINGING:

                Log.d("TAG", "RINGING====>" + incomingNumber);

                if (incomingNumber.equalsIgnoreCase("phoneNumber")) {

                    switch (audiomanager.getRingerMode()) {

                    case AudioManager.RINGER_MODE_VIBRATE:

                        audiomanager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

                        audiomanager.setStreamVolume(AudioManager.STREAM_RING,volRing,0);

                        break;

                    case AudioManager.RINGER_MODE_SILENT:

                        audiomanager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

                        audiomanager.setStreamVolume(AudioManager.STREAM_RING,volRing,0);

                        break;
                    }
                }
                break;
            }

        };
于 2013-08-30T11:27:58.240 回答
0

在 Android 中没有办法做到这一点。但是,您可以使用TelephonyManagerPhoneStateListener检查电话状态。当你得到这些信息后,你应该能够实现你需要的功能。这篇文章应该对你有所帮助:Android READ PHONE STATE?.

祝你好运!

于 2013-08-30T11:24:55.253 回答