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

我传递给一个活动的数字要通过捆绑呼叫

然后,在这样的活动中,我有一个button来呼叫该号码,这是代码:

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

有些事情是错的,因为当我按下button什么都没有发生…

我做错了什么?

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

你忘了打电话给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呼叫系统。 如果呼叫是下降,那么你应该在数字之间传递更多的“,”。

看看那里: 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(); } 

在选定的答案,没有检查棉花糖许可。 它不会直接在棉花糖6.0或以上的设备上工作。

我知道我太迟了,但是这个问题有很大的投票权,所以我想以后会有帮助的。

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

这里是一个例子,打电话在棉花糖或以上。

如何拨打android棉花糖6.0或以上

 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 = "911"; String uri = "tel:" + mobileNo.trim(); Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse(uri)); startActivity(intent); } });* }