Android:简单的USSD拨号应用程序

Android:简单的USSD拨号应用程序,android,Android,我创建了一个简单的拨号器,可以帮助我快速拨打移动服务提供商的服务,如检查空气平衡,从提供商处获取互联网设置 //example phoneNum[1] = "*144#"; 当我点击一个按钮检查余额时,它显示为拨号 Dialing *144 *144,注意散列不存在,但如果散列可用,它应该作为ussd代码运行,并返回余额而不是调用。如何将散列添加到数组中?您应该使用%23对#符号进行转义 //示例 phoneNum[1]=“*144” 至于捕捉反应,你应该尝试 startActivityF

我创建了一个简单的拨号器,可以帮助我快速拨打移动服务提供商的服务,如检查空气平衡,从提供商处获取互联网设置

//example
phoneNum[1] = "*144#";
当我点击一个按钮检查余额时,它显示为拨号

 Dialing *144
*144,注意散列不存在,但如果散列可用,它应该作为ussd代码运行,并返回余额而不是调用。如何将散列添加到数组中?

您应该使用%23对#符号进行转义

//示例
phoneNum[1]=“*144”

至于捕捉反应,你应该尝试

startActivityForResult(new Intent("android.intent.action.CALL", 
                   Uri.parse("tel:"+ phoneNum[1]+ encodedHash)), 1);
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
    view.setText("USSD: " + requestCode + " " + resultCode + " " + data);
}

看看你会得到什么回报。

谢谢,如果我想直接拨号而不去拨号窗口怎么办?你是什么意思?当你把
startActivityForResult(…)
放在按钮的
onClick
中时,它会自动拨号。你应该先读一点关于[link](,int))和[link](,int,android.content.Intent))的内容。@Karadza3a,非常感谢,我现在可以直接拨号并得到结果,我现在正在尝试*450*1#。我是否需要对第二个星号进行uri编码并用%23转义?我已经试过了,但没用。不,你只需要转义散列(#),你可以放任意多的星号(即“*123*5*2*4”),只要用
String encodedHash
startActivityForResult(new Intent("android.intent.action.CALL", 
                   Uri.parse("tel:"+ phoneNum[1]+ encodedHash)), 1);
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
    view.setText("USSD: " + requestCode + " " + resultCode + " " + data);
}