Как сделать телефонный звонок программно?


Я передаю в действие номер для вызова с помощью пакета

и потом, в такой деятельности у меня есть кнопка Позвонить на этот номер, это код:

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 99

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 нам нужно получить разрешение на время выполнения для вызова...

вот пример, чтобы позвонить в зефир или выше.

как сделать звонок в android зефир 6.0 или выше

взгляните туда: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);
        }
    });*
 }