最近解决一个获得gmail附件文件名字的问题, 由于打开gmail附件所获得的intent data 是Content://xxxx形式,而非常用的File://xxxx形式,所以不能直接用getIntent().getData()来获得文件名。研究了一下,最后发现用下面方法可以获得content的文件名字:
ContentResolver resolver = getContentResolver();
String filename = null;
int id;
Cursor cursor = resolver .query(uri, null, null, null, null);
cursor .moveToFirst();
id = cursor .getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME); //MediaStore.MediaColumns.DISPLAY_NAME 为android定义的标准宏
filename = cursor .getString(id);// filename 即为索要获得的文件名字。
当然也可以通过 resolver .openInputStream(getIntent().getData()); 的方法来读取content文件里面的内容。