Sending ACTION_CALL Intent in Android containing hash # sign

后端 未结 4 1071
野性不改
野性不改 2021-01-12 07:23

I am having the problem that the hash sign is truncated. Does anybody know a solution? using unicode or %23 is not working in my case. Now the number that is dialed is *101<

相关标签:
4条回答
  • 2021-01-12 08:02

    An all in one solution would be:

                String number = "*123#";
                number =  number.replace("*", Uri.encode("*")).replace("#",Uri.encode("#"));
                Intent mIntent = new Intent(Intent.ACTION_CALL);
                Uri data = Uri.parse("tel:" + number);
                mIntent.setData(data);
                startActivity(mIntent);
    
    0 讨论(0)
  • 2021-01-12 08:03

    I found a solution for this issue by replacing # in %23

    String uri = "tel:" + "*133%23";
    
    Intent intent;
    intent = new Intent(Intent.ACTION_CALL, Uri.parse(uri));
    
    0 讨论(0)
  • 2021-01-12 08:08

    Found a solution: String encodedHash = Uri.encode("#"); this did the trick...

    0 讨论(0)
  • 2021-01-12 08:21

    This would be easier;

    String no = textview.getText().toString();
    if(no.contains("#")){
    no = no.replace("#","%23");
    }
    startActivity(new Intent(Intent.ACTION_CALL)
    .setData(Uri.parse("tel:" no)));
    
    0 讨论(0)
提交回复
热议问题