2011-06-24 56 views
4

有没有方法可以在不显示允许用户发起呼叫的用户界面的情况下呼叫联系人?所以当我点击一个按钮时,联系人号码就会立即被拨打,就像当我去电话中最后一次通话时点击某人时,他们立即被呼叫。不使用UI的呼叫

我使用的是现在的代码是:

try { 
    Intent intent = new Intent(Intent.CALL_ACTION); 
    intent.setData(Uri.parse("tel:" + number)); 
    startActivity(intent); 
} catch (Exception e) { 
    Log.e("SampleApp", "Failed to invoke call", e); 
} 

回答

4

添加权限android.permission.CALL_PHONE的清单,并改变Intent.CALL_ACTIONIntent.ACTION_CALL

+0

我接受这个答案,因为这是第一个,但所有三个答案都是正确的。 ACTION_CALL起作用,ACTION_DIAL不起作用。谢谢! – erdomester

+0

不适用于android 7.0,任何syggestion –

+0

在运行时请求'android.permission.CALL_PHONE'?什么不工作? –

1
private void call() {  
    try {  
     Intent callIntent = new Intent(Intent.ACTION_CALL);  
     callIntent.setData(Uri.parse("tel:123456789"));  
     startActivity(callIntent);  
    } catch (ActivityNotFoundException e)  {  
     Log.e("helloandroid dialing example", "Call failed", e);  
    } 

AndroidManifest.xml中

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

您发布的代码不应该工作... 没有CALL_ACTION,请改用ACTION_CALL。

+0

我用这样的sg,我从网上复制粘贴的代码是错误的,但这不是问题:)我使用的代码(我不在家,所以我不能发布我的代码)工作正常。 – erdomester

+0

所以,你应该拨打号码。是不是你的问题 - “注意:这个意图不能用于拨打紧急号码,但是应用程序可以使用ACTION_DIAL拨打紧急号码。” – piotrpo

0
Intent intent = new Intent(Intent.CALL_ACTION); 

应该

Intent intent = new Intent(Intent.ACTION_CALL); 

这是我的完整代码:

Intent intentcall = new Intent(); 
    intentcall.setAction(Intent.ACTION_CALL); 
    intentcall.setData(Uri.parse("tel:" + phoneNumber)); 
    startActivity(intentcall);