【问题标题】:How can I make android app wait till a phone call is completed?如何让 android 应用程序等到电话完成?
【发布时间】:2019-10-17 06:55:30
【问题描述】:

我试图通过我的android应用程序一个接一个地拨打多个电话,通过在循环中调用一个函数并提供一个电话号码作为参数,然后进行调用并且函数结束并返回到循环下一个电话和下一个号码的功能被调用。

我已尝试添加 wait() 一段时间以使应用按预期运行,但如果调用持续时间大于等待时间,则它不起作用。

私人无效调用开始(){ 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);
            }            
    }
}

我原以为电话会一一打通。 但是所有的调用都是一次进行的,或者只进行最后一次调用。

我只想在上一个通话结束后才拨打电话。 我该怎么做?

【问题讨论】:

    标签: android phone-call telephonymanager android-phone-call


    【解决方案1】:

    您无需等待电话通话结束 - 您会注册电话事件通知。我在How to detect incoming calls, in an Android device? 有一些旧代码,它将显示如何知道通话何时结束。当它结束时,你取消注册并运行你会等待的任何代码。

    【讨论】:

    • 我是 Android 编程新手,能否请您详细解释一下我需要做些什么才能使其正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    相关资源
    最近更新 更多