如何通过CamCard获取VCF格式字符串Android中的字符串名称

时间:2016-08-24 10:24:46

标签: android vcf

所以我使用CamCard API来获取VCard格式字符串,这个字符串出现在BEGIN:VCARD到END:VCARD

从BEGIN开始:VCARD和END:VCARD,如何分别以字符串形式获取姓名,电话号码,电子邮件?任何参考,我该怎么办?

1 个答案:

答案 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'