Android联系人意图在打开uri时仅包含文件名

时间:2012-08-10 15:46:28

标签: android android-intent contacts vcard

我尝试编写一个应用程序,作为我的联系人和短信应用程序之间的一个层。 因此,当通过vcard共享conatct时,我为我的应用程序获得了额外的选项。 我的应用程序收到了意图。 我得到了内容:// uri by

Uri uri = (Uri) getIntent().getExtras().get(Intent.EXTRA_STREAM);

我可以使用以下内容获取AssetFileDescriptor:

AssetFileDescriptor afd = getContentResolver().openAssetFileDescriptor(uri, "r");
没问题。同样打开文件:

InputStream is = afd.createInputStream();
byte[] buffer = new byte[(int)afd.getDeclaredLength()];
is.read(buffer);

但是这个文件只包含“[”和十六进制字符串。我认为它应该考虑实际的vcard文件? 因为我做了

buffer.toString();

而不是

new String(buffer);

没有正确转换utf-8编码的字节,愚蠢的愚蠢的8小时错误....

尝试使用query()

打开uri
Cursor c = getContentResolver().query(uri, null, null, null, null);

给我一​​个包含一行的游标 ???,firstname lastname.vcf,null

在哪里???是三个数字。

也许其他人可以用它来读这个。

0 个答案:

没有答案