ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在Android中将所有联系人作为vcard获取

2019-12-02 00:24:50  阅读:295  来源: 互联网

标签:vcard android-contacts android


我正在尝试将所有联系人都设为vCard.

这是我的代码:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ContentResolver cr = getContentResolver(); 

        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
                        null, null, null, null); 
        if (cur.getCount() > 0) { 
            //cur.moveToFirst();
                while (cur.moveToNext()) { 
                        try{ 
                                String lookupKey = 
cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); 
                                Uri uri = 
Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, 
lookupKey); 
                                AssetFileDescriptor fd = 
this.getContentResolver().openAssetFileDescriptor(uri, "r"); 
                                FileInputStream fis = fd.createInputStream();

                                byte[] buf = new byte[(int)fd.getDeclaredLength()]; 
                                if (0 < fis.read(buf)) 
                                { 
                                        String vCard = new String(buf); 
                                        System.out.println("The vCard value is " + vCard); 
                                }
                                fis.close();
                        } 
                        catch(Exception e) 
                        { 
                                System.out.println(e.getStackTrace()); 
                        } 
                } 
        } 
        cur.close(); 
        System.out.println(cur.getCount());
} 
}

这给了我几乎所有的联系方式,但是它不返回某些包含特殊字符的联系方式,在葡萄牙语中我们说“mãe”(妈妈),并且此代码无法识别它.其他所有类似“António”的名称都没有出现.

我在这个问题上停留了很长时间.

解决方法:

获取VCard的最佳方法是编写自己的函数来创建VCard.如果Contacts不是英语,则您使用的方法会出现问题.
手动获取联系人的所有字段并将其写入您的VCard文件.

看看https://code.google.com/p/android-vcard/可读取和写入VCard

标签:vcard,android-contacts,android
来源: https://codeday.me/bug/20191202/2084725.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有