我的应用程序目前不会产生最终的#34;#"在AT& T的用于检查数据使用的USSD代码的末尾(应该是* 3282#)
这是我的代码:
public void callATT(View view){
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "*3282#"));
startActivity(intent);
}
每次调用它时只需调用" * 3282"
请帮助我,
提前致谢
-Tucker
答案 0 :(得分:1)
试试这个,我没有测试它,但应该可以工作。
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + Uri.encode("*3282#")));
startActivity(intent);
答案 1 :(得分:1)
public Uri USSDToCallableUri(String ussd) {
String uriString = "";
if(!ussd.startsWith("tel:"))
uriString += "tel:";
for(char c : ussd.toCharArray()) {
if(c == '#')
uriString += Uri.encode("#");
else
uriString += c;
}
return Uri.parse(uriString);
}
然后设置此:
Intent callIntent = new Intent(Intent.ACTION_CALL, USSDToCallableUri(USSDCodeHere));
startActivity(callIntent);
答案 2 :(得分:0)
只需使用此方法......
String encodedHash = Uri.encode("#");
String ussd = "*123"+ encodedHash;
startActivity(new Intent(Intent.ACTION_CALL, Uri
.parse("tel:" + ussd)));enter code here
答案 3 :(得分:-1)
尝试这样的事情。告诉我它是否有效
String phone = "*3282#";
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", phone, null));
startActivity(intent);