Как сделать программный вызов программным путем?
Я передаю на номер активности, чтобы позвонить по пачке
и затем, в такой деятельности, у меня есть кнопка для вызова на этот номер, это код:
callButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(bundle.getString("mobilePhone")));
}
});
Что-то не так, потому что когда я нажимаю кнопку, ничего не происходит...
Что я делаю неправильно?
PD: Я использую совместимый с Android 1.5 проект... возможно, телефонный звонок несовместим с 1.5?
Ответы
Ответ 1
Ты забыл вызвать startActivity. Он должен выглядеть следующим образом:
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
context.startActivity(intent);
Само по себе намерение - это просто объект, который описывает что-то. Он ничего не делает.
Не забудьте добавить соответствующее разрешение к вашему манифесту:
<uses-permission android:name="android.permission.CALL_PHONE" />
Ответ 2
Пробовал это на моем телефоне, и он отлично работает.
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:900..." ));
startActivity(intent);
Добавьте это разрешение в файл манифеста.
<uses-permission android:name="android.permission.CALL_PHONE" />
Ответ 3
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+198+","+1+","+1));
startActivity(callIntent);
для нескольких упорядоченных вызовов
Это используется для вызывающих систем DTMF.
Если вызов падает, тогда вы должны передавать больше "," между цифрами.
Ответ 4
В выбранном ответе нет проверки на разрешение зефира. Он не будет работать напрямую в устройстве с маршмеллоу 6.0 или выше.
Я знаю, что опоздал, но этот вопрос имеет большое голосование, поэтому я подумал, что это поможет другим в будущем.
В зефирных устройствах нам нужно получить разрешение во время выполнения для вызова...
Вот пример, чтобы сделать звонок в зефир или выше.
Как сделать звонок в андроиде зефир 6.0 или выше
Ответ 5
Посмотрите там: http://developer.android.com/guide/topics/intents/intents-filters.html
У вас есть обновленный файл манифеста, чтобы предоставить права на вызов?
Ответ 6
Здесь я покажу вам, как вы можете сделать телефонный звонок из своей деятельности. Чтобы позвонить, вам необходимо указать этот код в своем приложении.
try {
Intent my_callIntent = new Intent(Intent.ACTION_CALL);
my_callIntent.setData(Uri.parse("tel:"+phn_no));
//here the word 'tel' is important for making a call...
startActivity(my_callIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), "Error in your phone call"+e.getMessage(), Toast.LENGTH_LONG).show();
}
Ответ 7
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button = (Button) findViewById(R.id.btn_call);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String mobileNo = "123456789";
String uri = "tel:" + mobileNo.trim();
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
}
});*
}
Ответ 8
Если кто-то ищет в Котлине
val uri = "tel:+800******"
val call_customer_service = Intent(Intent.ACTION_CALL)
call_customer_service.setData(Uri.parse(uri))
startActivity(call_customer_service)
Как и некоторым другим решениям, требуется разрешение android.permission.CALL_PHONE
.
Ответ 9
Это не требует разрешения.
val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:+123456"))
startActivity(intent)
Или
val intent = Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", "+123456", null))
startActivity(intent)
Но он показывает еще одно диалоговое окно (спрашивает, хотите ли вы позвонить по телефону один раз или всегда). Поэтому было бы лучше использовать ACTION_CALL
с разрешением (см. Отмененное разрешение android.permission.CALL_PHONE).