如何让android应用程序等到电话结束?

时间:2019-05-31 15:50:29

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

我试图通过我的Android应用程序一个接一个地拨打多个电话,方法是在循环内调用一个函数并提供电话号码作为参数,然后进行呼叫,函数结束并返回到循环下次拨打电话,并拨打带有下一个号码的功能。

我尝试在特定时间内添加wait(),以使应用程序按预期运行,但是如果通话时间长于等待时间,则无法正常工作。

私人无效的callingStart(){             而(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 :(得分:0)

您不必等待电话结束-您将注册以接收电话事件通知。我在How to detect incoming calls, in an Android device?有一些旧代码,这些代码将显示如何知道何时结束通话。结束时,您可以注销并运行您等待的任何代码。