我有一个似乎无法解决的问题。问题出在生成呼叫某个特定号码的二维码时。数字格式为*103*14位数字激活number#,使用安卓二维码应用程序读取会导致呼叫表单中缺少散列符号(#)。我用谷歌搜索了一下,得出的结论是,由于某种原因,android API阻止了从二维码读取散列符号。android操作系统的变通方法是对散列使用URI编码,该编码为%23,在这种情况下,它的工作方式就像一个护身符。但是,使用iOS QRReader应用程序读取相同的二维码并不能将%23转换为哈希,相反,它只显示23。是否有覆盖所有这些问题的解决方案?提前谢谢你!
发布于 2012-05-15 19:57:01
您必须对散列进行双重编码,所以百分号也会被编码。
因此,#变为%2523
扫描此二维码,您的电话拨号程序应显示*#67#

查看此bug report on Zxing
发布于 2012-05-15 19:40:56
也许,在将字符串传递给Intent之前,您需要对其进行编码:
String qrCode = "*103*14#";
String uri = Uri.encode("tel:" + qrCode);
Intent intent = new Intent(Intent.ACTION_CALL, uri);https://stackoverflow.com/questions/10599727
复制相似问题