如何通过名片名片获取VCF格式字符串Android中的字符串名称
How to get String Name in VCF Format String Android via CamCard
所以我用名片卡API得到VCard Format String,这个字符串出现在BEGIN:VCARD到END:VCARD
从BEGIN:VCARD和END:VCARD,我如何分别在String中获取姓名,phone号码,电子邮件?任何关于我应该做什么的参考?
@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();
}
}
这里"text"是我的二维码结果。我正在做的是制作一个 .vcf 文件并将我的二维码结果存储在其中。然后 VCardWriter 将完成它的工作.. 它将分离有关联系人应用程序的结果文本。及其自动存储在联系人应用程序中。
或者如果您希望将每个单独的结果作为一个字符串。这就是您获得它的方法。
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'
所以我用名片卡API得到VCard Format String,这个字符串出现在BEGIN:VCARD到END:VCARD
从BEGIN:VCARD和END:VCARD,我如何分别在String中获取姓名,phone号码,电子邮件?任何关于我应该做什么的参考?
@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();
}
}
这里"text"是我的二维码结果。我正在做的是制作一个 .vcf 文件并将我的二维码结果存储在其中。然后 VCardWriter 将完成它的工作.. 它将分离有关联系人应用程序的结果文本。及其自动存储在联系人应用程序中。
或者如果您希望将每个单独的结果作为一个字符串。这就是您获得它的方法。
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'