安卓如何对外置设备进行读写操作

针对目前项目中的一个小需求,这里先记一笔:

需求:外置U盘插入安卓设备,要求对设备中的某个excel文件进行读写的操作。

问题:权限问题。

环境:Android5.1

如果要读写的文件在U盘的根目录,读写操作会遇到一些权限问题,我的设备上读的权限是有的,但是没有写入修改的权限。网上查了很多方法,说是什么加入

<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/>
这个权限,实测是无效的,该权限后来只被系统应用所给予。
另一种方式:将app签名为系统应用,该方式实测有效,公司里用的也是这种方式。
这里主要说明下第二种方式,此处可以参考该篇博文:http://www.cnblogs.com/welhzh/p/5102198.html

如果要进行写入操作的话,需要在指定目录下才行,就是 /U盘根目录/Android/data/包名/    在该路径下是可以进行读写操作的。
原因是android4.4之后安卓方面进行了权限更改,之前的
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
该权限被用于内置存储的读写。外置存储读写用的是
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/>
但是该权限被用于系统应用
总结:比如你的文件名为 123.txt   那么如果要对该文件进行读写操作的话,在U盘上的路径为   /U盘根目录/Android/data/包名/cache/123.txt  或者 
/U盘根目录/Android/data/包名/file/123.txt
在这里同时说下通用的U盘根路径:/mnt/usb_storage    /storage/usbotg
也就是说上面文件的具体路径可以改为:   /mnt/usb_storage/Android/data/包名/cache/123.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值