当前位置: 首页 > 知识库问答 >
问题:

使用内置电话拨号器启动电话呼叫

屠兴旺
2023-03-14

我想从应用程序拨打电话。
是否可以将选项限制为仅从内置电话应用程序呼叫,而不将Viber,Skype或Whatsapp显示为选项?

以下是我的代码:

        Intent i = new Intent(Intent.ACTION_DIAL);
        i.setData(Uri.parse("tel:"+ adapter.getItem(position).getContent()));
        startActivity(Intent.createChooser(i, getString(R.string.call_number)));

我想看起来像这样:

而不是这样(如果我已经安装了Viber和Skype):

我尝试使用以下代码:

public static Intent callfromDefaultDialer(Context ctxt, String no) {

    Intent i = new Intent();
    i.setAction(Intent.ACTION_CALL);
    i.setData(Uri.parse("tel:" + no));
    PackageManager pm = ctxt.getPackageManager();
    List<ResolveInfo> list = pm.queryIntentActivities(i, 0);
    for (ResolveInfo info : list) {
        String pkgnam = info.activityInfo.packageName;
        if (pkgnam.toLowerCase().equals("com.android.phone")) {
            i.setClassName(pkgnam, info.activityInfo.name);
            return i;
        }
    }

    return i;
}

这让Skype成为一种选择,我也不知道为什么?

共有1个答案

白吕恭
2023-03-14

您可以使用ACTION_CALL Intent 标志

 Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));
 startActivity(intent);

但这不再是正确的选择。

您需要在清单中请求直接电话访问权限。

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

如果您只使用这两行代码,您将拥有拨号器,而不是Skype。

不要创建选择器,只需使用默认的拨号器意图即可。

也检查在你的电话里的默认电话拨号器应用,这是Skype吗?

此外,你还应该检查GSM网络是否可用。

 类似资料:
  • 拨打电话     拨打电话给 Skype 联系人。开始通话前,需先让支援PSP™版 Skype 的音频输入设备连接PSP™主机。 从联系人名单选择拨打对象 1. 进入 Skype 的选单画面后选择(联系人)。 2. 从联系人名单中选择电话的拨打对象。 可拨打电话给登入状态为(在线)等可通话状态的联系人。 开始呼叫后,会显示对方的名字或 Skype 账号。对方回复后即可开始通话。 提示 透过 Sky

  • 我们需要使用语音连接两位客户,但我们需要隐藏彼此的客户电话号码。我们决定使用下一种方法——用twilio屏蔽电话号码 问题是: 我们使用twilio号码连接两个客户。我们可以使用相同的号码进行另一个呼叫吗?或者在呼叫完成之前它是“忙”的? 如果它是'忙',我们可以购买例如20个电话号码,并在每次需要打电话时可用吗? 不相关,但为什么没有可能购买乌克兰电话号码。 非常感谢您的帮助。

  • 问题内容: 当我用make或new调用创建新的slice或struct时: Go通过内存分配系统调用分配多少内存?它是否预分配了内存,以便后续调用不会触发新的系统调用? 我问这个问题是因为我需要在代码中频繁分配内存。我不确定是否需要自己实现一个内存分配器,还是可以依靠Go来完成肮脏的工作。如果Go确实预分配了内存,我可以自定义要分配的块大小吗? 我在Go中编写了一些实验代码,并在strace下运行

  • 问题内容: 我正在尝试拨打的电话不是使用特定号码,而是使用在变量中被调用的号码,或者至少告诉它在您的电话中提取该号码。这个在变量中被调用的数字是我使用解析器或从网站sql检索到的数字。我做了一个按钮,试图用一个函数调用存储在变量中的电话号码,但无济于事。一切都会帮助谢谢! 问题答案: 试一试: 假设电话号码在。 的返回Optional,因此使用可以确保它是(而不是)返回的。 对于Swift 3:

  • 接听由普通电话拨打的电话(SkypeIn)     可接听传统的电话回线拨打的电话。若要使用此机能,需先购买  Skype 点数,或使用信用卡购买  SkypeIn 号码。其次,开始通话前,需先让支援PSP™版 Skype 的音频输入设备连接PSP™主机。 1. 登入 Skype ,并将登入状态调整为[ 在线]。 登入状态为[ 脱机]等状态时,无法接听电话。 2. 铃声响起,并显示来电画面后,选择

  • 我想创建一个帮助台网页,在该网页中,代理可以单击一个链接来启动对目标号码的出站呼叫。我知道如何使用Web客户端实现这一点,但对于一个没有带宽支持VoIP的代理,我希望Twilio拨打代理的电话号码,然后拨打目标号码。 这种体验很像将Google Voice与Google Chat/Hangout客户端一起使用——Google Voice呼叫您的号码/客户端,然后向目标发起呼叫。 此外,如果代理和目