Как заставить приложение для Android ждать завершения телефонного звонка? - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь сделать несколько телефонных звонков через мое приложение для Android один за другим, вызывая функцию внутри цикла и предоставляя номер телефона в качестве параметра, затем выполняется звонок, и функция завершается и возвращается в цикл для следующий телефонный звонок и вызывается функция со следующим номером.

Я пытался добавить wait () в течение определенного времени, что заставляет приложение работать как положено, но если продолжительность вызова больше, чем время ожидания, оно не работает.

private void callStart () { while (tempAL.size ()> 0) {

            PhoneNumber = (String) tempAL.get(0);
            PhoneNumber.trim();
            tempAL.remove(callingIndex);
            if (PhoneNumber.length() > 0) {
                finish();
                makePhoneCall(PhoneNumber);                                
            } 
        }

}

private void makePhoneCall (String PhoneNumber1) {

    if (ContextCompat.checkSelfPermission(callresult.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {

        ActivityCompat.requestPermissions(callresult.this, new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL);

    } 
    else {

            if (COUNT == callMade) {
                startActivity(getIntent());
                String dial = "tel:" + PhoneNumber1;
                Intent i = new Intent(Intent.ACTION_CALL, Uri.parse(dial));
                startActivity(i);
            }            
    }
}

Я ожидал, что звонок будет сделан один за другим. Но все звонки выполняются одновременно или только последний звонок.

Я хочу сделать телефонный звонок только после завершения предыдущего вызова. Как я могу это сделать?

1 Ответ

0 голосов
/ 31 мая 2019

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

...