需要写一些程序,可以打开图片和PDF,本地的图片和PDF可以正常打开,因为他们具有具体的物理路径(/mnt/sdcard/pic/1.png).
但是要求可以打开,邮件中的附件,图片和PDF,邮件中的附件得到的URI格式是:
content://com.android.email.attachmentprovider/1/1/RAW
请问怎样根据这个URI得到文件的名称(文件名+后缀)。
我的想法是,通过流的方式解析这个URI,在SD卡中生成一个文件,然后再读取这个本地的文件。
但是这个文件名,应该怎样获得?
大家有更好的方法吗?
但是要求可以打开,邮件中的附件,图片和PDF,邮件中的附件得到的URI格式是:
content://com.android.email.attachmentprovider/1/1/RAW
请问怎样根据这个URI得到文件的名称(文件名+后缀)。
我的想法是,通过流的方式解析这个URI,在SD卡中生成一个文件,然后再读取这个本地的文件。
但是这个文件名,应该怎样获得?
大家有更好的方法吗?
看下email对应数据库的表结构,自己改下 private String getPathByUri(Context context,Uri uri)
{
String[] proj = { MediaStore.Images.Media.DATA };
ContentResolver resolver = context.getContentResolver();
Cursor actualimagecursor = resolver.query(uri,proj,null,null,null);
int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
actualimagecursor.moveToFirst();
String path = actualimagecursor.getString(actual_image_column_index);
Log.e(TAG,"path="+path);
return path;
}
emial中的附件在手机上应该没有绝对路径吧?
2. 附件内容以文件的形式直接存在,数据库用相应字段来保持附件的绝对路径