4

我使用以下代码从 android 应用程序中发起呼叫:

intent.setData(Uri.parse("tel:+12345 #123"));
startActivity(intent);

当它开始调用时,它会忽略以 # 开头的所有内容。

我读了一些关于修改 SpecialCharSequenceMgr.java 文件的内容,但我在任何地方都找不到这个,老实说,我不知道到底要做什么。解决这个问题的最佳方法是什么?

4

5 回答 5

16

我认为问题在于 # 符号在 URI 中具有特殊含义,因此您必须使用以下Uri.encode()方法对其进行编码:

    Intent out = new Intent();
    out.setAction(Intent.ACTION_DIAL);
    out.setData(Uri.parse("tel:" + Uri.encode("+12345#123")));
    startActivity(out);
于 2011-01-27T11:55:47.023 回答
4

我相信乔恩在你的问题上并不完全正确,这个想法还不错,虽然......你需要使用特殊字符映射来启动磅键:

Intent intcall = new Intent(Intent.ACTION_CALL);
intcall.setData(Uri.parse("tel:5555" + "%23"+"additional number"));
startActivity(intcall);
于 2012-04-15T18:39:54.377 回答
0

我发现了这个,它对我来说很好用 > unity 2020.3

'Application.OpenURL("tel://Number");'

于 2021-09-13T11:11:07.153 回答
0

就这样做吧。它对我有用。

Uri.parse(Uri.encode("your string value"));
于 2018-05-01T13:54:08.290 回答
0

意图输出 = new Intent();

out.setAction(Intent.ACTION_DIAL);

out.setData(Uri.parse("tel:" + Uri.encode("+12345#123")));

开始活动(出);

于 2017-08-13T18:44:15.223 回答