Android USB写入数据失败(EACCES (Permission denied))

最近接到一个问题反馈,一个几年前的APP,之前USB热插拔读写备份正常,现在居然不能正常备份。log中显示:

System.err: java.io.IOException: open failed: EACCES (Permission denied)

但确认权限都有,targetSdkVersion为22,因此不存在动态申请权限的问题。之后用同样的APP在低版本手机上测试正常(有些是需要手动打开OTG)。后来搜索网上文章指出:Android 6.0以后,就算添加权限,也不能成功操作USB。进一步测试发现:在高版本手机,只是不能正常创建文件夹,如果手动创建了路径,还是能正常读写文件,因此本文只需采用第三方库创建文件路径,其他代码不用改变。

引入第三方库:

api 'com.github.mjdev:libaums:0.5.5'

在Service中初始化监听USB插拔广播:

IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MEDIA_CHECKING");
filter.addAction("android.intent.action.MEDIA_MOUNTED");
filter.addAction("android.intent.action.MEDIA_EJECT");
filter.addAction("android.intent.action.MEDIA_RE
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值