您的位置:首页 > 移动开发 > Android开发

Android调用系统邮件发送附件 文件大小0B

2017-09-26 22:52 232 查看

最近公司App用户反馈出现某些操作会导致数据和界面异常,在友盟上没有发现错误日志,后台也没有做传送日志的功能,坑,没有办法定位。。

想起可以开发一个给用户发送日志的功能,让用户把异常日志采用邮件的形式发送过来,算是临时方案吧。

问题来了,在Android7.0调用系统邮件API(首先手机上要设置好相应邮箱的账户和密码,会有提示如何设置)时,将日志文件作为附件传递过去,在邮箱发送界面的附件文件大小为0B,检查文件是正常存在的,并且通过手动方式选择的附件文件都是正常的。

分析原因

调用系统邮件API的问题

检查代码,调用邮件的API很简单,已经设置类型为文件流形式,排除。

访问权限问题,文件存放路径无法访问,导致无法获取文件流

log日志文件存放目录为cache,需要兼容7.0的私有权限问题(不兼容会抛出exposed beyond app through ClipData.Item.getUri()异常,并且文件大小为0B)

7.0之前使用Uri.fromfIle(file)正常访问,文件正常

7.0之后需要通过FileProvider并且在path下设置cache-path权限进行访问,文件大小为0B

更换文件存储路径为外部存储,需要兼容7.0的私有权限问题(不兼容会抛出exposed beyond app through ClipData.Item.getUri()异常,并且文件正常显示)

7.0之前使用Uri.fromfIle(file)正常访问,文件正常

7.0之后需要通过FileProvider并且在path下设置external-files-path权限进行访问,文件大小为0B

系统邮件客户端的问题

更换QQ邮箱客户端后正常

无论文件是存放在cache下面还是外部存储目录下文件都显示正常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: