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

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

需求:外置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
 
  
 

猜你喜欢

转载自blog.csdn.net/xiaochenuu/article/details/70148000