gpt4 book ai didi

android - 通过 Intent 保存 VCard 联系人

转载 作者:行者123 更新时间:2023-11-30 02:21:04 44 4
gpt4 key购买 nike

我想通过发送 Intent 在用户的联系人中保存一个 VCard 格式的联系人数据。有什么办法吗?

注意:我不想将VCard数据保存在.vcf文件中然后给它uri 到 ‍‍intent 就像下面的代码。

String scanned = "..." // contact in VCard format
Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
File vcfFile = new File(getCacheDir(), "tmp.vcf");
try {
FileOutputStream fos = new FileOutputStream(vcfFile);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(scanned);
osw.close();
fos.close();
i.setDataAndType(Uri.fromFile(vcfFile), "text/vcard");
startActivity(i);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

最佳答案

如果联系人确实在联系人数据库中,您可以查看 android 联系人应用程序的代码,了解如何从中共享 vcard(来自 here,位于名为“QuickContactActivity.java”的文件中) :

private void shareContact() {
final String lookupKey = mContactData.getLookupKey();
final Uri shareUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey);
final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(Contacts.CONTENT_VCARD_TYPE);
intent.putExtra(Intent.EXTRA_STREAM, shareUri);

// Launch chooser to share contact via
final CharSequence chooseTitle = getText(R.string.share_via);
final Intent chooseIntent = Intent.createChooser(intent, chooseTitle);

try {
mHasIntentLaunched = true;
ImplicitIntentsUtil.startActivityOutsideApp(this, chooseIntent);
} catch (final ActivityNotFoundException ex) {
Toast.makeText(this, R.string.share_error, Toast.LENGTH_SHORT).show();
}
}

关于android - 通过 Intent 保存 VCard 联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545346/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com