1

我遇到了一个似乎无法解决的问题。问题在于生成将呼叫一个特定号码的二维码。号码格式为 *103*14 位激活号码#,使用 android 二维码应用程序读取它会导致呼叫表单中没有井号 (#)。我用谷歌搜索了它,结论是android API出于某种原因阻止从二维码读取哈希符号。android 操作系统的解决方法是使用 URI 编码作为 %23 的哈希值,在这种情况下,它就像一个魅力。但是使用 iOS QRReader 应用程序读取相同的 QR 码不会将 %23 转换为哈希值,而只会显示 23。有没有解决所有这些问题的解决方案?先感谢您!

4

2 回答 2

3

您必须对哈希进行双重编码,因此百分号也被编码。

所以,# 变成 %2523

扫描此二维码,您的电话拨号器应显示 *#67#

URI 编码的 USSD 有 QR

请参阅有关 Zxing 的此错误报告

于 2012-05-15T11:57:00.920 回答
0

也许,您需要在将 String 传递给 Intent 之前对其进行编码:

String qrCode = "*103*14#";
String uri = Uri.encode("tel:" + qrCode);
Intent intent = new Intent(Intent.ACTION_CALL, uri);
于 2012-05-15T11:40:55.933 回答