Android studio Action 调用 运行 USSD 代码

Android studio Action call to run USSD codes

我想通过应用程序 运行 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);



        }
    });

试试这个 code.Use 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);

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

示例:

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