android去除读取android访问sd卡权限限

安卓L中为ES文件浏览器设置外置SD卡读写权限的操作方法
时间:日来源:百度
1、首先在SD卡选中要重命名的文件,发起重命名
2、此时系统会提示授予ES文件读写权限,点击选择
3、接着进入授权界面第一步,如图,点击设置
4、接下来选择高级设置
5、接下来就出现手机内存和外置SD卡选项,选择外置SD卡
6、再选择最下面的&全选&
7、到这里就设置成功啦。。。。对于rar等软件请求外置SD卡读写权限设置方法方法类似!!!
ES文件浏览器安卓版是一款手机上的文件管理工具,ES文件浏览器在原有复制、粘贴、删除的基本功能上还增加了网络共享、云盘同步等…
页面地址:/android/ESwenjianliulanqianzhuoban.html
看过这篇文章的人还看过
输入你的评价或问题……在2.x的版本中,在manifest中配置的权限android.permission.WRITE_EXTERNAL_STORAGE确实是用来使得sd卡获得写的权限。而在4.0开发的源码当中,由于有了内外置sd卡的区分,android.permission.WRITE_EXTERNAL_STORAGE的权限用来设置了内置sd卡的写权限,如果在manifest中只是配置了这个权限,那个应用只能在内置sd卡中进行写操作,还是无法在外置sd卡中进行写操作。需要写外置sd卡的话,需要配置另一个权限android.permission.WRITE_MEDIA_STORAGE,这样就可以在外置sd卡中进行写入操作了。
这两个权限都被定义在 android源码目录\frameworks\base\data\etc\platform.xml中:
&name="android.permission.WRITE_EXTERNAL_STORAGE"&&&
&&&&&gid="sdcard_rw"&&&
&name="android.permission.WRITE_MEDIA_STORAGE"&&&
&&&&&gid="media_rw"&&&
使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。
StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&
可以读写SDCARD,包括其他storage,比如内部flash,usb等等
4.0中如果只声明这个,会发现其他mount的设备有可能没有写权限,需要同时声明
&uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/& &
这样才可以读写/mnf/flash , /mnt/usb, /mnt/externa等目录
Views(...) Comments()Android sdcard读写权限问题之一 - 推酷
Android sdcard读写权限问题之一
博主在刚刚在学习过程中发现了一个关于android往sdcard读写的问题,
配置了该配置的提示无读写权限。
在AndroidManifest.xml文件中配置清单如下
&manifest xmlns:android=&/apk/res/android&
package=&com.example.custom&
android:versionCode=&1&
android:versionName=&1.0& &
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
&uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS&/&
android:minSdkVersion=&8&
android:targetSdkVersion=&19& /&
&application
android:allowBackup=&true&
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@style/AppTheme& &
android:name=&custom_content_provider.RegionContentProvider&
android:authorities=&mobile.android.wang.hao.regioncontent& /&
&activity android:name=&custom_content_provider.Main& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&/application&
&/manifest&
往sdcard写文件的代码如下
//打开数据库
private SQLiteDatabase openDatabase(){
Log.d(&error&, &openDatabase&);
InputStream is =
FileOutputStream fos =
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//获取文件目录
String dbFileName = Environment.getExternalStorageDirectory()+&/region.db&;
Log.d(&error&, dbFileName);
if(!(new File(dbFileName).exists())){//文件不存在copy
is = getContext().getResources().getAssets().open(&region.db&);
fos = new FileOutputStream(dbFileName);
byte[] buffer = new byte[8192];
int count = 0;
while((count=is.read(buffer))&0){
fos.write(buffer,0,count);
Log.d(&error&, &无读写权限&+Environment.getExternalStorageDirectory()+&/region.db&);
}catch(Exception ex){
Log.d(&error&, ex.getMessage());
// 关闭流 &略...
然后运行的时候提示无权限访问该sdcard路径,但是我们配置的也配置了,网上有说是sdk版本的问题,
说2.2以后的版本不能用FileOutputStream 创建文件,搞了半天,还是一样,最后我用手机测试了一下,
发现文件创建成功,突然,我想了一下,是否有sdcard呢?
d---------,问题居然出在这里,难道是虚拟机没有装载sdcard,紧接着,我重启了一把,OK搞定
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致android 读写sd卡的权限设置 - 博客频道 - CSDN.NET
移动互联网忠实捍卫者!android ios 应用开发 unity3d coco2d-x 游戏开发攻城狮。sina @承影爱吃苹果
分类:android之恋
(132359)
在Android中,要模拟SD卡,要首先使用adb的mksdcard命令来建立SD卡的镜像,如何建立,大家上网查一下吧,应该很容易找到,这里不说这个问题.
& & 但是在应用程序执行起来以后,我们可以看到sdcard的执行权限很有问题.懂Linux的人都知道,这样的权限是无法在SD开中写入内容的,也就无法建立目录.Android中对sd卡的读写权限问题
& & 但是,我们在adb shell命令中,依然可以在sdcard中建立目录,写入文件.这倒是也是见鬼的事情.但是,如果你想把权限更改成777,命令行并不报错,再使用ls -l查看一下,权限依然没有改变过来.我们急中生智,使用su命令将自己变成root用户,在使用chmod 777 sdcard来改变权限,发现结果依然无效.
& & 网上多有介绍,在Android的manifest.xml文档中加入下面的声名:
& & &uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
& & &uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS&/&
& & 试验之后,大多数人发现依然无效.没有人再把问题叙述得更详细些,不知道是什么样的心态?我的一个弟兄终于找到了问题所在.
&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
& && &package=&byd.eagle&
& && &android:versionCode=&1&
& && &android:versionName=&1.0&&
& & &uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
& & &uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS&/&&&
& & &application android:icon=&@drawable/icon& android:label=&@string/app_name&&
& && &&&&activity android:name=&.EagleBackup&
& && && && && && &android:label=&@string/app_name&&
& && && && &&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
& && && && &&intent-filter&
& && && && && & &action android:name=&android.intent.action.MAIN& /&
& && && && && & &category android:name=&android.intent.category.LAUNCHER& /&
& && && && &&/intent-filter&
& && &&&&/activity&
& & &/application&
& & &uses-sdk android:minSdkVersion=&8& /&
&/manifest&
& & 注意一下uses-permission在manifest.xml中的位置,这是解决问题的关键。
& & 那么我们再来写个试验程序:
& & public class TestMakePath extends Activity {
& && & @Override
& && &&&public void onCreate(Bundle savedInstanceState) {
& && &&&super.onCreate(savedInstanceState);
& && &&&setContentView(R.layout.main);
& && &&&try
& && && && & Log.v(&EagleTag&,&.......hahhha&);
& && && && & Log.v(&EagleTag&,Environment.getExternalStorageState());
& && && && & File tPath=new File(&/mnt/sdcard/tmp1&);
& && && && & if(tPath.canRead())
& && && && && &&&Log.v(&EagleTag&,&very bad&);
& && && && & if(tPath.canWrite())
& && && && && &&&Log.v(&EagleTag&,&very good&);
& && && && & File tPathSon=new File(&/mnt/sdcard/tmp1/good&);
& && && &&&tPathSon.mkdirs();
& && && &}
& && && &catch(Exception e)
& && && &{
& && && && & Log.v(&EagleTag&,&file create error&);
& && && &}& && &
& &这回真的没问题了.
chengyingzhilian
排名:第1090名
(17)(90)(5)(8)(20)(4)(50)(4)(17)(18)(5)(1)(8)(4)(1)(6)(1)(1)(2)(5)
(135256)
(132344)

我要回帖

更多关于 安卓读取sd卡权限 的文章

 

随机推荐