我可以使用以下代码从.vcf文件中检索android中的所有联系人。
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
System.out.println("The value is " + cr.getType(uri));
AssetFileDescriptor fd = this.getContentResolver().openAssetFileDescriptor(uri, "r");
FileInputStream fis = fd.createInputStream();
我不知道如何使用此.vcf文件使用代码导入所有这些联系人。 .vcf文件包含所有联系人的所有详细信息,包括照片等。
干杯, Prateek
答案 0 :(得分:2)
如上所述,内置的VCFImportActivity烘焙到了android本身的代码中。我个人想通过意图从gmail应用程序打开一个无法识别的vcf文件。我会发送一个附加到我的程序的vcf数据的意图,然后启动联系人应用程序。 如果将上述vcf文件保存到SD卡的根目录(或联系人应用程序保存其导出的vcfs的任何位置),然后启动如下活动:
Uri stuff = getIntent().getData();
Intent i = new Intent(android.content.Intent.ACTION_VIEW, stuff);
i.setType("text/x-vcard");
startActivity(i);
应该在导入其在该目录中看到的任何vcf时启动联系人应用。很明显,在启动此代码片段之前保存该vcf文件,启动联系人应用程序(通过可能会出现的选择器),等等! Android 应该开始导入这些联系人。 [这是我头脑中的解决方案]
如果没有,请告诉我,让我看看你得到的调试错误。
答案 1 :(得分:-2)
我在Android中作为vCard导入联系人时遇到了很多困难,在花了很多时间之后,我没有用于导入联系人的公共API。
我所知道的唯一方法就是重用Android的源代码。我通过重用Android 2.1源代码实现了相同的目标。
可以从
引用文件在右侧的资源管理器中,您将找到pim文件夹下所需的所有文件。负责启动该过程的文件是ImportVCardActivity.java
我希望它有所帮助!!
干杯,Prateek
答案 2 :(得分:-4)
我终于实现了联系人导入。解决方案是从Android源代码中提取所有相关文件并进行一些更改,它将起作用。 : - )