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

Java Android studio运行USSD代码的操作调用,java,android,android-permissions,ussd,Java,Android,Android Permissions,Ussd,通过使用应用程序,我想运行USSD代码,但问题是它无法识别“#”符号。 如果我想运行“*100#”,它只会将输入识别为“*100”。如何添加“#”。为什么不承认这一点 这是我的密码 checkBalance.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(Inten

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



        }
    });

尝试此代码。使用
Uri.encode(“#”)


您需要在
Uri.Parse()
中使用
Uri.encode(“您的USSD代码”)

例如:

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

请参阅。Android不支持USSD代码。没有可靠的方法可以在所有设备上运行。无论如何,你也不应该真的使用它们——USSD是在数据计划之前就存在的黑客。现在你应该改为打电话给网络服务。有没有办法打个“#”呢。为什么整根绳子不能放在这里
Uri.parse("tel:"+ Uri.encode("*100#"));