【发布时间】:2014-04-07 23:03:56
【问题描述】:
我正在尝试以编程方式启动联系人应用程序以导入包含大量联系人的大型 .vcf 文件。以下代码几乎可以完美运行。
String vcfMimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("vcf");
Intent openVcfIntent = new Intent(Intent.ACTION_VIEW);
openVcfIntent.setDataAndType(Uri.fromFile(savedVCardFile), vcfMimeType);
startActivity(openVcfIntent);
唯一的问题是 Android 显示了一个应用选择器对话框,不仅显示联系人应用,还显示 Dropbox(或任何其他处理 vCard 文件的应用)。我想防止这种行为,并直接用联系人应用打开文件,以便自动开始导入。
我尝试了在 StackOverflow 上找到的几件事,但都没有成功,例如设置:
openVcfIntent.setComponent(new ComponentName("com.android.contacts", "com.android.contacts.DialtactsContactsEntryActivity"));
openVcfIntent.setAction("android.intent.action.MAIN");
openVcfIntent.addCategory("android.intent.category.LAUNCHER");
openVcfIntent.addCategory("android.intent.category.DEFAULT");
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: android android-contacts contactscontract vcf-vcard import-contacts