想查看jpeg电子邮件附件吗?

时间:2013-05-02 12:45:04

标签: android android-intent attachment

我创建了一个图像查看器,使用其文件名打开图像。当您使用URI单击文件管理器中的图像时,它也可以工作,并将其设置为我的默认查看器。

但是,如果我收到一封附有图片作为附件的电子邮件(我使用K9邮件客户端),然后点击图像拇指,我的查看器将文件名称为“VIEW”。有道理,系统中没有文件。当然,我可以保存附件并查看它,但我不想这样做。

所以,我的问题是:如何让我的观众直接获得附件?也许这是正确的问题:当您点击电子邮件中的附件“链接”时,电子邮件客户端会返回什么?

修改

这就是我尝试在代码中打开URI的方式:

        uri = getIntent().getData();
        if (uri != null)
            String file = getRealPathFromURI(uri);

和功能getRealPathFromURI是:

private String getRealPathFromURI(Uri contentURI) {
    Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
    if (cursor == null || cursor.getCount() == 0) {
        return contentURI.getPath();
    } else if (cursor.getCount() == 0) {
        return null;
    } else {
        cursor.moveToFirst();
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        String path = cursor.getString(idx);
        cursor.close();
        return path;
    }
}

使用此代码,我得到路径content://com.fsck.k9.attachmentprovider/34fc2cc9-aa46-45e9-9e3f-2f27f0457249/1‌​/VIEW,当然这是错误的。正确的应该是/mnt/sdcard/Android/data/com.fsck.k9/files/34fc2cc9-aa46-45e9-9e3f-2f27f0457249‌​.db_att/1

所以正确的问题是:为什么上面的getRealPathFromURI()函数没有返回正确的文件路径?

0 个答案:

没有答案