В моем приложении мне нужно сделать звонок на несколько выбранных номеров из списка автоматически по одному на все номера. Таким образом, мы включаем телефон в список для 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);
}
}
}