Android上的公共URI我可以存储VCARD,以便Android vcard导入活动可以看到它吗? (没有SD卡)

时间:2012-03-29 16:06:31

标签: android file uri vcard

我需要在没有SD卡但没有外部存储的手机上导入Android中的vcard。我可以访问vcard文件作为字符串/流(无论哪个)。我希望android通过调用以下内容来处理导入:

Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.putExtra("account_name", accountName);
i.putExtra("account_type", accountType);
i.setDataAndType(Uri.parse("file://" + importFile.getAbsolutePath()), "text/x-vcard");
startActivity(i);

我收到权限错误,因为我找不到一个可以放置默认android活动可以具有读取权限的文件的地方。我尝试保存这样的文件:

FileOutputStream openFileOutput = ctx.openFileOutput("contacts.vcf", Context.MODE_WORLD_WRITEABLE);
try {
    openFileOutput.write(fileAsString.getBytes());
    openFileOutput.flush();
    } catch (Exception e) {
        e.printStackTrace();
    } finally{
        try{openFileOutput.close();}catch (Exception e) {}
    }

然后使用:

将URI传递给它
File fileStreamPath = ctx.getFileStreamPath("contacts.vcf");
Uri uri = Uri.parse("file://" + fileStreamPath.getAbsolutePath()), "text/x-vcard");

但我得到了许可错误。

我查看了活动,它唯一接受的是URI,它不接受流或字符串,所以我不能以这两种方式向它发送vcard文件,它必须是一个URI (这使这个问题变得非常复杂......)。

所以我的问题:

如何将我目前拥有的这个vcard作为字符串添加到公共URI中,以便导入vcards的android活动可以访问它?

非常感谢阅读。

0 个答案:

没有答案