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); }

本文介绍了一种通过Android应用程序实现电话充值的方法。为了确保充值过程顺利进行,代码中使用了特定的URI编码技巧来处理特殊字符,例如“#”号,并通过Intent发起电话充值操作。此外,还提供了一个处理安全异常的机制,以确保用户体验。
456

被折叠的 条评论
为什么被折叠?



