编程语言
首页 > 编程语言> > java – Android studio动作调用以运行USSD代码

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);



        }
    });

解决方法:

试试这个代码.使用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);

标签:java,android,android-permissions,ussd
来源: https://codeday.me/bug/20190622/1264969.html