无法读取vCard数据:从ez vcard导出

用户名

我正在使用ezvcard库从我自己的应用程序中导出联系人数据。我的问题是,导出的vcard无法在我的股票联系人应用中读取。这是输出:

BEGIN:VCARD 
VERSION:4.0 
N:;User Name;;; 
FN:User Name 
ORG:Anderson Secondary School 
TEL;TYPE=work,voice:92365313 
PRODID:ez-vcard 0.9.9 
END:VCARD 
BEGIN:VCARD 
VERSION:4.0 
N:;All fields 2;;; 
FN:All fields 2 
ORG:List (All fields) 
TEL;TYPE=work,voice:12345678 
PRODID:ez-vcard 0.9.9 
END:VCARD

在下面,我创建电子名片的代码

  LayoutInflater li = SettingsPortationActivity.this.getLayoutInflater();
                    View promptsView = li.inflate(R.layout.prompts, null);
                    fileName = "";
                    fileNameInput = (EditText) promptsView.findViewById(R.id.editTextDialogUserInput);
                    fileNameInput.setText(".vcf");

                    AlertDialog.Builder builder = new AlertDialog.Builder(SettingsPortationActivity.this);
                    // sets prompts to alertdialog builder
                    builder.setView(promptsView);

                    builder.setCancelable(false)
                            .setPositiveButton("Save", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    fileName = fileNameInput.getText().toString();
                                    if (!fileName.trim().isEmpty()) { // has value
                                        FavoritesDatabaseHelper db = new FavoritesDatabaseHelper(getApplicationContext());
                                        List<FavoriteObject> favorites = db.getAllFavorites();

                                        List<VCard> vcards = new ArrayList<VCard>();

                                        String storage_path = Environment.getExternalStorageDirectory().toString() + File.separator + fileName;
                                        File file = new File(storage_path);
                                        Log.d("Directory", String.valueOf(storage_path));
                                        VCardWriter writer = null;

                                        try {
                                            writer = new VCardWriter(file, VCardVersion.V4_0);
                                        } catch (IOException e) {
                                            e.printStackTrace();
                                        }

                                        for (int i = 0; i < favorites.size(); i++) {
                                            FavoriteObject fav = favorites.get(i);
                                            Log.d("Export fav", "Fav name" + fav.getContactName());

                                            VCard vcard = new VCard();
                                            vcard.setClassification("PUBLIC");

                                            StructuredName n = new StructuredName();
                                            n.setGiven(fav.getContactName());
                                            vcard.setStructuredName(n);

                                            vcard.setFormattedName(new FormattedName(fav.getContactName()));

                                            Organization org = new Organization();
                                            org.addValue(fav.getListName());
                                            vcard.setOrganization(org);

                                            Telephone tel = new Telephone(fav.getContactNumber());
                                            tel.addType(TelephoneType.WORK);
                                            tel.addType(TelephoneType.VOICE);
                                            vcard.addTelephoneNumber(tel);

                                            vcards.add(vcard);
                                        }

                                        try {
                                            for (VCard vcard : vcards) {
                                                try {
                                                    writer.write(vcard);
                                                } catch (IOException e) {
                                                    e.printStackTrace();
                                                }
                                            }
                                        } finally {
                                            try {
                                                writer.close();
                                                Log.d("Success", "Export success");
                                                Toast.makeText(SettingsPortationActivity.this, "Export Success", Toast.LENGTH_LONG).show();
                                            } catch (IOException e) {
                                                e.printStackTrace();
                                            }
                                        }
                                    } else {
                                        fileNameInput.setError("Please enter a file name");
                                    }
                                }
                            }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                        }
                    });
                    AlertDialog alertDialog = builder.create();
                    alertDialog.show();
阿诺·奎劳德(Arnaud Quillaud)

您实际上是在利用vCard 4.0的任何功能吗?如果不是这种情况,我首先将版本设置为3.0而不是4.0。不幸的是,极少数软件已迁移到vCard 4.0。

还将PRODID放在流的开头,因为这可能有助于某些解析器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法读取vCard数据:从ez vcard导出

来自分类Dev

从vCard读取/解析数据

来自分类Dev

Android Ez vCard库-编写多个vCard

来自分类Dev

Android无法使用ez-vcard从VCARD获取正确的街道地址

来自分类Dev

以.vcf(vcard)格式导出联系人Windows Phone 8

来自分类Dev

如何将联系人导出到 vcard?

来自分类Dev

从VCARD读取元素

来自分类Dev

无法从.vcf文件读取多个vcard,vobject.readOne(f)仅适用于第一个vcard

来自分类Dev

URI中的vCard标签

来自分类Dev

在Android上导入vCard

来自分类Dev

无法向vCard添加base64编码的图像

来自分类Dev

XMPPIQ没有在vCard中设置vCard标签

来自分类Dev

如何避免生成一个vcard而不是给定的vcard?

来自分类Dev

如何在Java中使用自己的数据创建vcard?

来自分类Dev

Bash脚本生成Vcard

来自分类Dev

设置 EjabberD XMPP VCard 昵称

来自分类Dev

如何在vCard 2.1中添加URL?

来自分类Dev

如何从XMPP / OpenFire在iOS中检索vCard

来自分类Dev

带有Python的Vcard解析器

来自分类Dev

寻找免费收集不同的vCard(* .vcf)

来自分类Dev

如何在vCard 2.1中添加URL?

来自分类Dev

如何从XMPP / OpenFire检索iOS中的vCard

来自分类Dev

PHP Vcard在Outlook中显示为空

来自分类Dev

如何将vCard转换为CNContact

来自分类Dev

删除 vCard 文件中的重复记录

来自分类Dev

无法使用联系人框架创建联系人的vcard

来自分类Dev

vCard 4.0可以存储多个不属于该组的vCard联系人吗?

来自分类Dev

使用python VObject包解析VCARD文件时出错

来自分类Dev

使用XMPPFramework在vCard上传中,图像变得难以辨认