所以我使用CamCard API来获取VCard格式字符串,这个字符串出现在BEGIN:VCARD到END:VCARD
从BEGIN开始:VCARD和END:VCARD,如何分别以字符串形式获取姓名,电话号码,电子邮件?任何参考,我该怎么办?
答案 0 :(得分:1)
@Override
public void onQRCodeRead(final String text, PointF[] points) {
pointsOverlayView.setPoints(points);
if (text.length() > 0 && !text.isEmpty()) {
resultTextView.setText(text);
qrCodeReaderView.stopCamera();
btnSaveToContact.setVisibility(View.VISIBLE);
btnSaveToContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkandRequestPermission()) {
VCard vCard = Ezvcard.parse(text).first();
File vcfFile = new File(getActivity().getExternalFilesDir(null), "generated.vcf");
VCardWriter writer = null;
try {
writer = new VCardWriter(vcfFile, vCard.getVersion());
writer.write(vCard);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(vcfFile), "text/x-vcard");
startActivity(i);
}
}
});
model = new Model();
model.setQrText(resultTextView.getText().toString());
model.setDate(getDateTime().toString());
realm.beginTransaction();
realm.copyToRealm(model);
realm.commitTransaction();
}
}
这里"文字"是我的二维码结果。我正在做的是制作一个.vcf文件并将我的qrcode结果存储在其中。之后,VCardWriter将完成其工作..它将分离关于联系人应用程序的结果文本。并自动存储在Contact应用程序中。
或者如果您希望每个单独的结果都是一个字符串。这就是你如何得到它。
String name = vCard.getFormattedName().getValue();
String email = vCard.getEmails().get(0).getValue();
String address = vCard.getAddresses().get(0).getStreetAddress() + vCard.getAddresses().get(0).getCountry();
String birthday = vCard.getBirthday().getText().toString();
String telephone = vCard.getTelephoneNumbers().toString();
您需要先添加此依赖项:
compile 'com.googlecode.ez-vcard:ez-vcard:0.10.0'