我想在android的字符串中写入数字符号

时间:2017-01-15 08:08:20

标签: android string android-intent

大家好我正在制作一个应用程序,当用户点击按钮时,它会将它们重定向到android的手机应用程序并输入* 700#。但问题是当我在字母中写#时它没有出现在android的手机应用程序中。

这是代码:

public void activite (View view) {
        String number = "*700#";
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:" +number));
        startActivity(intent);
    }

它工作正常,但数字符号没有出现请帮助。

3 个答案:

答案 0 :(得分:2)

试试这个方法,

private Uri getCallString(String ussd) {

    String uriString = "";

    if(!ussd.startsWith("tel:"))
        uriString += "tel:";

    for(char c : ussd.toCharArray()) {

        if(c == '#')
            uriString += Uri.encode("#");
        else
            uriString += c;
    }

    return Uri.parse(uriString);
}

要打电话,

String number = "*700#";
Intent intent = new Intent(Intent.ACTION_CALL, getCallString(number));
startActivity(intent);

请参阅this SO thread

答案 1 :(得分:1)

试试这个:

public void activite (View view) {
    String encodedHash = Uri.encode("#"); //encode hash here
    String number = "*700";
    Intent intent = new Intent(Intent.ACTION_DIAL);
    intent.setData(Uri.parse("tel:" +number+encodedHash)); //updated here
    startActivity(intent);
}

答案 2 :(得分:0)

 public void activite (View view) {
        String number = "*700";
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:" + Uri.encode( number + "#")));
        startActivity(intent);
    }

这对我有用。谢谢你回答我的问题!