有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android studio运行USSD代码的操作调用

通过使用应用程序,我想运行USSD代码,但问题是它无法识别“#”符号。 如果我想运行“*100#”,它只会将输入识别为“*100”。如何添加“#”。为什么不承认这一点

这是我的密码

  checkBalance.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent i = new Intent(Intent.ACTION_CALL);


            i.setData(Uri.parse("tel:"+"*100#"));

            if (ActivityCompat.checkSelfPermission(mobitelPage.this,
                    Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                return;
            }
            startActivity(i);



        }
    });

共 (2) 个答案

  1. # 1 楼答案

    试试这个代码。使用Uri.encode("#")

        String encodedHash = Uri.encode("#");
        i.setData(Uri.parse("tel:"+"*100"+encodedHash));
    
        if (ActivityCompat.checkSelfPermission(this,
                Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
            return;
        }
        startActivity(i);
    
  2. # 2 楼答案

    您需要在Uri.Parse()中使用Uri.encode("YOUR USSD CODE")

    例如:

    Uri.parse("tel:"+ Uri.encode("*100#"));