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

最近公司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下面还是外部存储目录下文件都显示正常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值