连接后Android自动调用和剪切

时间:2013-08-30 11:15:59

标签: android android-activity

在我的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新手 请帮助,提前致谢

2 个答案:

答案 0 :(得分: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;
            }

        };

答案 1 :(得分:0)

在Android中无法做到这一点。但是,您可以使用TelephonyManagerPhoneStateListener来检查手机状态。获得此信息后,您应该能够实现所需的功能。这篇文章可以帮助您:Android READ PHONE STATE?

祝你好运!