Android 无法将#作为输入传递到拨号程序应用程序中

Android 无法将#作为输入传递到拨号程序应用程序中,android,android-studio,development-environment,Android,Android Studio,Development Environment,我正在构建一个android拨号程序应用程序,但当我的输入包含*123形式的字符串时,拨打的号码是*123。 如何在拨号程序应用程序中也通过? 代码如下: public void onDial(View v) { if (input.getText().length() <3) { Toast.makeText(this, "Please Enter the Valid Number", Toast.LENGTH_SHORT).show(); } else

我正在构建一个android拨号程序应用程序,但当我的输入包含*123形式的字符串时,拨打的号码是*123。 如何在拨号程序应用程序中也通过? 代码如下:

 public void onDial(View v) {
    if (input.getText().length() <3) {
        Toast.makeText(this, "Please Enter the Valid Number", Toast.LENGTH_SHORT).show();
    } else {
        Intent intent = new Intent(Intent.ACTION_CALL);
        String hash = input.getText().toString();
        if (hash.contains("#")) {
            hash.replace("#", "%23");
        }
        intent.setData(Uri.parse("tel:" + hash));

        if (ActivityCompat.checkSelfPermission(this,Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
            startActivity(intent);
        }else{
            requestCallPermission();
        }
}
}
public void onDial(视图五){

如果(input.getText().length()where close!编码可以工作,但是replace方法返回一个新字符串!:-)

参考文献:


您可以使用where close!编码,但replace方法返回一个新字符串!:-)

参考文献:


@Samin如果你发现这有帮助,请记住将其标记为已回答@Samin如果你发现这有帮助,请记住将其标记为已回答
   if (hash.contains("#")) {
        hash = hash.replace("#", "%23"); // Need to set the hash reference to the new string generated by replace()!
    }
    intent.setData(Uri.parse("tel:" + hash));