Как сделать телефонный звонок программно?
Я передаю в действие номер для вызова с помощью пакета
и потом, в такой деятельности у меня есть кнопка Позвонить на этот номер, это код:
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?
7 ответов:
Вы забыли позвонить 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" />
попробовал это на моем телефоне, и она прекрасно работает.
Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:900..." )); startActivity(intent);
добавьте это разрешение в файл манифеста.
<uses-permission android:name="android.permission.CALL_PHONE" />
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+198+","+1+","+1)); startActivity(callIntent);
для нескольких заказать звонок
Это используется для систем вызова DTMF. Если вызов отбрасывается, то вы должны передать больше ", " между номерами.
в выбранном ответе нет проверки разрешения marshmallow. Он не будет работать непосредственно в marshmallow 6.0 или выше устройства.
Я знаю, что я слишком поздно, но этот вопрос имеет большой голос, поэтому я думал, что это поможет другим в будущем.
в устройствах marshmallow нам нужно получить разрешение на время выполнения для вызова...
вот пример, чтобы позвонить в зефир или выше.
взгляните туда:http://developer.android.com/guide/topics/intents/intents-filters.html
У вас есть обновить файл манифеста для того, чтобы дать права вызова ?
здесь я покажу вам, что, как вы можете сделать телефонный звонок из вашей деятельности. Чтобы сделать звонок, вы должны записать этот код в своем приложении.
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(); }
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); } });* }