1、需要给#加码:不至于调用的时候出现#被和谐掉了
/** * 话费卡充值 */ private void callThePhone(String targetPhone) { if (StringUtil.isNotBlank(targetPhone)) { String target =targetPhone;//"tel:"+ "*1234#"; try { Intent intent = new Intent(Intent.ACTION_CALL); Uri data = ussdToCallableUri("tel:" + targetPhone); intent.setData(data); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); }catch (SecurityException e) { e.printStackTrace(); ToastUtils.showToast(this, R.string.pay_type_call_code_notice); } } } //对#进行加码 private 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); }