0

我正在尝试制作一个可以拨打固定号码的android项目。当我使用像 01712364445 这样的普通数字或类似的东西时,它正在工作。但是当我使用这个号码 *566# 时,它正在拨打 *567,即 # is missing。如何解决这个问题?我的代码在这里...

    gp = (Button) findViewById(R.id.buttongp);
    gp.setOnClickListener(listener);


    }
OnClickListener listener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent dialerIntent = new Intent();
        dialerIntent.setAction(Intent.ACTION_CALL);
        dialerIntent.setData(Uri.parse("tel:*566# "));

        startActivity(dialerIntent);

    }
};
4

1 回答 1

0
Intent callIntent = new Intent(Intent.ACTION_CALL);
string pnd=uri.encode("#");     callIntent.setData(Uri.parse("tel:566 "+pnd));     startActivity(callIntent);

试试这个
并在主函数之前使构造函数全局化

编辑:此代码有效

    Button b;
    Intent callIntent = new Intent(Intent.ACTION_CALL);
    String pnd;
    @Override
    protected void onCreate(Bundle savedInstanceState)
{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    b=(Button)findViewById(R.id.b1);

    OnClickListener ls=new OnClickListener(){

        @Override
        public void onClick(View p1)
        {
            {
                pnd=Uri.encode("#");
                callIntent.setData(Uri.parse("tel:*566 "+pnd));
                startActivity(callIntent);
            }
            // TODO: Implement this method
        }
    };
    b.setOnClickListener(ls);

    }

}

和 uri.encode("#"); 把英镑符号放在那里检索ussd代码。按照程序连接 uri.encode("#");

测试和工作

使用适用于 Android 的 AIDE 进行测试。这就是我从智能手机创建应用程序的方式。

于 2015-07-09T00:35:46.023 回答