Android以编程方式拨打电话号码

时间:2014-03-13 08:07:21

标签: android android-intent

如何从Android应用程序以编程方式dial a number?我不想打电话,我知道我可以做一个意图:new Intent(Intent.ACTION_CALL),我只是想让用户进入Android拨号提示,号码已经通过传递意图进行输入,以便她可以选择自己调用该号码。

6 个答案:

答案 0 :(得分:49)

使用以下代码:

Uri number = Uri.parse("tel:123456789");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
startActivity(callIntent);

答案 1 :(得分:10)

使用ACTION_DIAL

像,

Intent intent = new Intent(Intent.ACTION_DIAL);

活动操作:拨打数据指定的号码。这显示了一个正在拨打号码的用户界面,允许用户明确发起呼叫。

答案 2 :(得分:8)

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" />

答案 3 :(得分:1)

此代码将在没有用户互动的情况下拨打电话,并且还会选择默认电话拨号器

    Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + url));
    intent.setClassName("com.android.phone","com.android.phone.OutgoingCallBroadcaster");
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

如果您希望用户选择他的拨号器删除

intent.setClassName("com.android.phone","com.android.phone.OutgoingCallBroadcaster");

如果您只想将号码丢给拨号器并且用户按下呼叫按钮,请使用此代码(我相信这就是您所要求的)

    Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + url));
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

网址是电话号码 并且不要忘记在清单文件中写入权限。

    <uses-permission android:name="android.permission.CALL_PHONE" />

答案 4 :(得分:0)

我有一个类似的问题,由

解决
        btn.setOnClickListener(new  View.OnClickListener(){
        public void onClick(View v) {
            String q=(t.getText().toString());
            Uri u=Uri.parse("tel:"+q);

            Intent i=new Intent(Intent.ACTION_VIEW,u);
            startActivity(i);
        }
    });

答案 5 :(得分:-1)

此代码将在没有手机默认呼叫键盘的情况下拨打您的号码:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + textView.getText())); 
intent.setClassName("com.android.phone","com.android.phone.OutgoingCallBroadcaster");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);