Определите время, когда телефон начинает звонить для исходящих вызовов

Как определить время, когда телефон начинает звонить при исходящих вызовах. Я разрабатываю приложение, в котором я пытаюсь сделать вызов программно и при подключении вызова (звонок). Я хочу получить какой-то ответ (например, подключен). Я пытаюсь выполнить код ниже, он может позвонить, но не знает, как получить ответ.

Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"mobile no.")); 
             startActivity(callIntent);

Заранее спасибо за ваше время и внимание.

Редактировать: когда исходящий вызов подключен (состояние звонка), я хочу получить уведомление. как тост или что-нибудь еще, что имеет значение. Является ли это возможным?


person IPL10    schedule 20.03.2014    source источник
comment
Вы нашли ответ для отслеживания события таймера вызова ..? даже я ищу то же самое, я еще не нашел решения   -  person Amey Bawiskar    schedule 23.11.2015


Ответы (3)


Вам нужно будет использовать BroadcastReceiver для прослушивания события вызова, а затем обрабатывать его, когда оно будет запущено. Вот хороший учебник, который я нашел в Google.

http://looksok.wordpress.com/2013/04/13/android-broadcastreceiver-tutorial-detect-outgoing-phone-call-event/

person the-ginger-geek    schedule 20.03.2014
comment
Ответ из моего приложения Stack Exchange - person the-ginger-geek; 20.03.2014
comment
мне нужен ответ, когда телефон начинает звонить для исходящих вызовов - person IPL10; 20.03.2014
comment
Получатель или звонящий? - person the-ginger-geek; 20.03.2014
comment
я хочу ответ вызывающего абонента - person IPL10; 21.03.2014

Я знаю, что это было давно, но я надеюсь быть полезным для тех, кто все еще ищет решение!

Недавно мне пришлось работать над аналогичным проектом, где мне нужно было зафиксировать состояние звонка исходящего вызова, и единственный способ, который я смог найти, — это использовать скрытый API родного приложения для набора номера. Это было бы возможно только для Android> 5.0 из-за изменений API. Это было протестировано на Android 5.0.1 и отлично сработало. (p.s. для его работы вам понадобится рутованное устройство, потому что вам нужно установить свое приложение как системное приложение (погуглите как!), Которое затем сможет обнаруживать состояния исходящих вызовов).

Для справки, PhoneStateListener не работает для обнаружения состояний исходящего вызова, как упоминалось во многих сообщениях.

Сначала добавьте это разрешение в файл манифеста,

<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />

Затем определите свой широковещательный приемник (вот пример кода!)

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;

public class MyBroadcastReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, final Intent intent)
    {
        switch (intent.getIntExtra("foreground_state", -2)) {
            case 0: //  PreciseCallState.PRECISE_CALL_STATE_IDLE:
                System.out.println("IDLE");
                break;
            case 3: //  PreciseCallState.PRECISE_CALL_STATE_DIALING:
                System.out.println("DIALING");
                break;
            case 4: //  PreciseCallState.PRECISE_CALL_STATE_ALERTING:
                System.out.println("ALERTING");
                break;
            case 1: //  PreciseCallState.PRECISE_CALL_STATE_ACTIVE:
                System.out.println("ACTIVE");
                break;
        }

    }
} 

Я заменил некоторые константы их значениями, потому что я видел много путаницы среди людей, незнакомых с концепцией отражения (для простоты). Оповещение — это в основном состояние, когда приемник действительно звонит! и это без учета времени установления вызова! поэтому вы можете получить время в этом операторе case, используя

System.currentTimeMillis();

или любой другой формат, который вы предпочитаете!

person Ali Tariq    schedule 24.03.2018

Обычным несистемным приложением определить невозможно - Android API нет. Я не мог найти способ, я очень долго гуглил решение :-(

НЕТ способа (к сожалению, потому что мне это нужно) определить время начала звонка исходящего звонка.

person Adriana Hernández    schedule 24.08.2017