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

在Android中将所有联系人作为vcard获取,第1张

概述我正在尝试将所有联系人都设为vCard.这是我的代码:publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);ContentResolvercr=getContentResolver();Cursorcur=cr.q

我正在尝试将所有联系人都设为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

总结

以上是内存溢出为你收集整理的在Android中将所有联系人作为vcard获取全部内容,希望文章能够帮你解决在Android中将所有联系人作为vcard获取所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1072539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存