如何发送号码拨打意图?

时间:2018-04-23 15:40:30

标签: android

我想发送号码来拨打意图。它适用于简单的数字,但是当我想使用#作为数字时,它不起作用。喜欢* 123 * 12#。
这就是我所做的:

public PhoneIntents dialPhone(String phoneNumber)
{
    intent = new Intent();
    intent.setAction(Intent.ACTION_DIAL);
    intent.setData(Uri.parse("tel:" + phoneNumber));
    return this;
}

它会自动删除号码末尾的#。但我也想要# 删除

intent.setData(Uri.parse("tel:" + phoneNumber));

适用于模拟器,但不适用于我的s7手机。它没有调出拨号应用程序。

2 个答案:

答案 0 :(得分:1)

你可以试试这个。这对我有用

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", phoneNumber, null));
mContext.startActivity(intent);

答案 1 :(得分:0)

首先需要对#符号进行编码:

public PhoneIntents dialPhone(String phoneNumber) {
    int sharpIndex = phoneNumber.indexOf('#');
    if (sharpIndex != -1) {
        phoneNumber = phoneNumber.replace("#", Uri.encode("#"));
    }

    intent = new Intent();
    intent.setAction(Intent.ACTION_DIAL);
    intent.setData(Uri.parse("tel:" + phoneNumber));
    return this;
}