【发布时间】:2014-04-01 11:18:20
【问题描述】:
在我的 android 应用程序中,我使用下面的 Intent 发送 USSD 代码 (#144#73#):
String baseUssd = Uri.encode("#") + "144" + Uri.encode("#");
StringBuilder builder = new StringBuilder();
builder.append(baseUssd);
builder.append("73");
builder.append(Uri.encode("#"));
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + builder.toString()));
它运作良好。
我现在想要的是发送这个代码:
#144#73MA#
我使用拨号盘,按照 Operator USSD 菜单 运行此程序,效果很好。
但是,如果我尝试以编程方式使用上面的Intent 来做这件事,那就行不通了。
我知道用拨号盘输入代码时不能使用字母字符,但我认为这可以通过编程方式实现!!
请有任何想法!
编辑
当我尝试以编程方式发送此信息时:#144#73MA# 我注意到拨号器应用程序将字母字符更改为拨号盘中对应的数字。意思是拨号器转换这个:#144#73MA#
对这个#144#7362#:为什么?
因为:
-
M匹配数字6 -
A匹配数字2
【问题讨论】:
-
使用上述无效的 Intent --- 请定义它到底是如何无效的。
-
感谢@shoerat,很高兴看到您的评论!让我编辑我的答案。
-
您找到解决方案了吗?
标签: android character-encoding character ussd