我必须从gmail应用程序中检索内容的文件路径。 我得到的内容类似于:
content://gmail-ls/messages/mymailid%40gmail.com/4/attachments/0.1/BEST/false
我尝试查询内容但我只获得两列标题和大小。我想获取文件路径。
请帮忙解决这个问题。
答案 0 :(得分:7)
我认为您无法直接检索文件路径,因为附件存储在Google服务器上。但是,您可以使用ContentResolver和InputStream访问文件数据,并将附件的数据复制到存储中。
受CarvingCode blog启发,我使用此代码段:
if (intent.getScheme().compareTo("content")==0)
{
try
{
InputStream attachment = getContentResolver().openInputStream(data);
if (attachment == null)
Log.e("onCreate", "cannot access mail attachment");
else
{
FileOutputStream tmp = new FileOutputStream("/mnt/sdcard/attachment.pdf");
byte []buffer = new byte[1024];
while (attachment.read(buffer) > 0)
tmp.write(buffer);
tmp.close();
attachment.close();
}
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}