Я думаю, что вы не можете получить путь к файлу напрямую, так как вложение хранится на серверах Google. Однако вы можете получить доступ к данным файла с помощью ContentResolver и InputStream и скопировать данные вложения в свое хранилище.
Вдохновленный Блогом CarvingCode , я использую этот фрагмент:
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();
}
}