大家好我正在制作一个应用程序,当用户点击按钮时,它会将它们重定向到android的手机应用程序并输入* 700#。但问题是当我在字母中写#时它没有出现在android的手机应用程序中。
这是代码:
public void activite (View view) {
String number = "*700#";
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" +number));
startActivity(intent);
}
它工作正常,但数字符号没有出现请帮助。
答案 0 :(得分:2)
试试这个方法,
private Uri getCallString(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);
}
要打电话,
String number = "*700#";
Intent intent = new Intent(Intent.ACTION_CALL, getCallString(number));
startActivity(intent);
请参阅this SO thread。
答案 1 :(得分:1)
试试这个:
public void activite (View view) {
String encodedHash = Uri.encode("#"); //encode hash here
String number = "*700";
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" +number+encodedHash)); //updated here
startActivity(intent);
}
答案 2 :(得分:0)
public void activite (View view) {
String number = "*700";
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + Uri.encode( number + "#")));
startActivity(intent);
}
这对我有用。谢谢你回答我的问题!