我使用谷歌 api从一些数据中生成二维码。它应该代表一个VCARD 格式。我称这个网址。
当我阅读二维码时,我很好地取回了我添加到链接中的所有信息,除了一个小错误。
接线员不工作。
我用Java(Android)找回了这个:
BEGIN:VCARD\nVERSION:2.1\nFN:Adam Varhegyi\nN:Adam;Varhegyi\nEMAIL:somemai@address.com\nTEL:1234567\nINTERNET:;\n\nORG:Mycompanyname\nEND:VCARD
而不是这个: (\n = 换行符)
BEGIN:VCARD\nVERSION:2.1
FN:Adam Varhegyi
N:Adam;Varhegyi
EMAIL:somemai@address.com
TEL:1234567
INTERNET:;
ORG:Mycompanyname
END:VCARD
我尝试使用这样的扫描仪来解决它:
Scanner sc = new Scanner(myVCardStringInputFromQrCode);
sc.useDelimiter("\n");
while(sc.hasNext()){
String str = sc.next();
Log.i("VCARD LINE: ", str);
}
而且这种方法只返回 1 行!它也忽略了“\n”标记。
编辑:
我也试过用System.getProperty("line.separator")
,但没用。
编辑第 2 部分:
if(myVCardStringInputFromQrCode.contains("\n")){
Log.i("Found linebreak", "TRUE");
}
else{
Log.i("Found linebreak", "FALSE");
}
这段代码给了我“FALSE” ——当我清楚地看到它时,Java 说它不包含“\n”。
有人知道这里发生了什么吗?
编辑第 3 部分:
由于某种原因,正确答案已被删除,因此我无法将其标记为“答案”。解决方案是“\\n”而不是“\n”,它正在工作。