如何在末尾使用带有#的Uri.parse()

时间:2013-05-15 16:35:05

标签: android parsing uri gsm

我尝试使用GSM代码通过Android应用程序转移我的电话。 例如,如果我打电话:** 21 * otherNumber# 我的所有电话都会被转移到其他号码上。

我的代码:

Uri transfert = Uri.parse( "tel:**21*" + numero + "#");
Intent intent = new Intent( Intent.ACTION_CALL, transfert );
startActivity(intent);

但是,Uri.parse()有定义: “URI引用包括URI和片段,URI后面的组件是'#'”

所以,它删除了#但我需要它。没有它,GSM代码就无法运行。

有人会有想法吗?

2 个答案:

答案 0 :(得分:2)

我认为你不能用扩展名拨打电话号码,这是一个已知问题(see this)。

根据this thread,您可以尝试添加%23,如Uri.parse( "tel:**21*" + numero + "%23");

答案 1 :(得分:0)

您需要发送URI编码的哈希来通过URI解析它。

public static final String encodedHash = Uri.encode("#");

它将保留URI编码的哈希并通过GSM发送USSD消息,如您所指定的那样。