如何通过名片名片获取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'