不使用用户界面进行呼叫

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个回答

4
在清单文件中添加一个权限 android.permission.CALL_PHONE,并将 Intent.CALL_ACTION 更改为 Intent.ACTION_CALL

我接受这个答案,因为这是第一个,但所有三个答案都是正确的。ACTION_CALL可以工作,而ACTION_DIAL则不行。谢谢! - erdomester
在运行时请求android.permission.CALL_PHONE权限?具体是什么问题? - Mykhailo Gaidai

2

你发布的代码不应该工作... 没有 CALL_ACTION,使用 ACTION_CALL 代替。


我现在正在使用类似这样的代码,我从网上复制粘贴的代码是错误的,但这不是问题。我正在使用的代码(我不在家,所以我无法发布我的代码)工作正常。 - erdomester
所以,你应该得到拨打的号码。这不是你的问题吗 - “注意:此意图不能用于拨打紧急号码。应用程序可以使用ACTION_DIAL拨打紧急号码。” - piotrpo

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>

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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接