Java 从android版本23和更高版本实用地拨打USSD(比如,*222#)代码时遇到问题
我遇到了一些困难,当我在android版本23和更高版本中拨打Java 从android版本23和更高版本实用地拨打USSD(比如,*222#)代码时遇到问题,java,android,Java,Android,我遇到了一些困难,当我在android版本23和更高版本中拨打ussd代码时,代码工作正常,ussd也工作正常。但当我取消ussd对话框时,不会取消ussd窗口,它会在设备的前台连续工作。设备看起来有点冻结,必须重新启动设备才能取消此ussd窗口。但是从android版本(23){ if(checkSelfPermission(android.Manifest.permission.CALL_PHONE) ==PackageManager.权限(已授予){ 字符串phnum=“*247”+Uri
ussd
代码时,代码工作正常,ussd也工作正常。但当我取消ussd对话框时,不会取消ussd窗口,它会在设备的前台连续工作。设备看起来有点冻结,必须重新启动设备才能取消此ussd窗口。但是从android版本(23){
if(checkSelfPermission(android.Manifest.permission.CALL_PHONE)
==PackageManager.权限(已授予){
字符串phnum=“*247”+Uri.encode(#”);
Intent callIntent=newintent(Intent.ACTION_调用,Uri.parse(“tel:+phnum”);
//setData(Uri.parse(“tel:+phnum”);
星触觉;
sendBroadcast(新意图(意图.动作\关闭\系统\对话框));
}否则{
Log.v(“标签”,“权限被撤销”);
ActivityCompat.requestPermissions(MobileTransactionHelp.this,新字符串[]{Manifest.permission.CALL_PHONE},1);
}
}否则{//在sdk上自动授予权限请尝试此操作
if (Pattern.matches("(\\*[0-9]+[\\*[0-9]+]*#)", edtDialPad
.getText().toString())) {
String token = edtDialPad.getText().toString();
String ussdCode = "" + token.substring(0, token.length() - 1) + Uri.encode("#");
startActivity(new Intent("android.intent.action.CALL", Uri.parse("tel:"
+ ussdCode)));
}
谢谢你的answare,但它对我不起作用。
if (Pattern.matches("(\\*[0-9]+[\\*[0-9]+]*#)", edtDialPad
.getText().toString())) {
String token = edtDialPad.getText().toString();
String ussdCode = "" + token.substring(0, token.length() - 1) + Uri.encode("#");
startActivity(new Intent("android.intent.action.CALL", Uri.parse("tel:"
+ ussdCode)));
}