如何以编程方式拨打电话?

Nul*_*ion 116 android phone-call

我将一个活动号码传递给活动

然后,在这样的活动中,我有一个按钮来调用该号码,这是代码:

callButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(bundle.getString("mobilePhone")));
            }
        }); 
Run Code Online (Sandbox Code Playgroud)

出了点问题,因为当我按下按钮时没有任何反应......

我究竟做错了什么?

PD:我正在使用Android 1.5兼容项目...也许电话与1.5不兼容?

Lio*_*ior 250

你忘了打电话给startActivity.它应该如下所示:

Intent intent = new Intent(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
context.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

意图本身就是描述某事物的对象.它没有做任何事情.

不要忘记向清单添加相关权限:

<uses-permission android:name="android.permission.CALL_PHONE" />
Run Code Online (Sandbox Code Playgroud)

  • @Dinash:看看这个已经回答的问题:http://stackoverflow.com/questions/13231962/call-from-second-sim (3认同)

Ani*_*udh 21

在我的手机上试过这个,它完美无缺.

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:900..." ));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在清单文件中添加此权限.

<uses-permission android:name="android.permission.CALL_PHONE" />
Run Code Online (Sandbox Code Playgroud)


Dwi*_* Ji 13

 Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+198+","+1+","+1)); 
             startActivity(callIntent);
Run Code Online (Sandbox Code Playgroud)

用于多个有序呼叫

这用于DTMF呼叫系统.如果呼叫丢失,那么你应该在数字之间传递更多",".


Vis*_*ani 6

在所选答案中,没有检查棉花糖许可.它不能直接在marshmallow 6.0或以上设备中使用.

我知道我来不及但这个问题投票很多,所以我认为这将有助于其他人.

在棉花糖设备中,我们需要获得运行时间的电话许可...

这是在棉花糖或以上进行呼叫的示例.

如何在android marshmallow 6.0或更高版本中进行调用