Android: Как вызвать намерение ACTION.PHONE внутри для l oop, для автоматического запроса телефона по одному из выбранного списка контактов? - PullRequest
0 голосов
/ 24 апреля 2020

В моем приложении мне нужно сделать звонок на несколько выбранных номеров из списка автоматически по одному на все номера. Таким образом, мы включаем телефон в список для l oop с номерами. Но здесь основная проблема заключается в том, что l oop завершил работу после выполнения одного запроса на вызов, когда функция возврата из телефонного номера после завершения запроса вызова l oop не работает.

public class ListToDial extends AppCompatActivity {

List<String> callNumbers;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_to_dial);

    callNumbers = new ArrayList<String>();
    callNumbers.add("6387614620");
    callNumbers.add("6387614620");
    callNumbers.add("7318459902");
    callNumbers.add("7318459902");
    makeRequest();
    makeCall(callNumbers);
}

public void makeCall(List<String> numbers)
{
    if (numbers.size() > 0) {
        try {
            for (int i =0; i<numbers.size(); i++)
            {
                String uri = "tel:" + numbers.get(i);
                methodforcall(uri, i);
            }
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), "Your call has failed..." + e.getMessage(),
                    Toast.LENGTH_LONG).show();
            e.printStackTrace();
            Log.e("exceptions =", Objects.requireNonNull(e.getMessage()));
        }
    } else {
        Toast.makeText(getApplicationContext(), "Select Minimum one contact", Toast.LENGTH_LONG).show();
    }
}
    private void methodforcall (String uri,int i)
    {
        Log.e("requestnumber=", String.valueOf(i));
        if (checkSelfPermission(Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
            makeRequest();
        }
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse(uri));
        if (callIntent.resolveActivity(getPackageManager()) != null) {
            startActivity(callIntent);
        }
        startActivity(callIntent);
    }
    private void makeRequest ()
    {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.CALL_PHONE}, 1);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...