java.io.IOException: open failed: EACCES (Permission denied)
java.io.File.createNewFile(File.java:940)
注:我已经添加过读写权限了
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<user-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
15 个解决方案
#1
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
不是user
不是user
#2
哈哈 1L正确 LZ在哪里copy的权限写法....
#3
有时某些错误是由于粗心造成的
#4
修改后,还是同样的错误。有没有其他办法
#5
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
#6
好像2.2以上的版本要这么写
File f = new File(path);
if(!if.exists()){
file.createNewFile();
}
如果还是不行就是虚拟机没有sdcard的size,你可以再创建虚拟机中双击你已经创建好了的虚拟机看看你们的想象信息
File f = new File(path);
if(!if.exists()){
file.createNewFile();
}
如果还是不行就是虚拟机没有sdcard的size,你可以再创建虚拟机中双击你已经创建好了的虚拟机看看你们的想象信息
#7
我也遇到了lz同样的问题,坐等呀
#8
还是不行啊
#9
请问你最后怎么解决的?
#10
1.
在
android4.0
源码出来以后,关于
sd
卡问题似乎没有解决好,起码上层
api
中没
有体现到位。其实在
framework
层中有相应的类去获得内外置
sd
卡信息,是否
可读写的权限。
在
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
中:
[html]
view plaincopyprint?
1.
<
permission
name
=
"android.permission.WRITE_EXTERNAL_STORAGE"
>
2.
<group
gid
=
"sdcard_rw"
/>
3.
<
/permission>
4.
5.
<
permission
name
=
"android.permission.WRITE_MEDIA_STORAGE"
>
6.
<group
gid
=
"media_rw"
/>
7.
<
/permission>
使用到的类主要是
framework/base/core/java/android/os/storage/StorageVolume.java
及相
同目录下的
StorageManager.java
文件。
StorageManager
类可以获得所有的存储媒体列表,
及
StorageVolume
类型
的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
#11
在android4.0源码出来以后,关于sd卡问题似乎没有解决好,起码上层api中没有体现到位。其实在framework层中有相应的类去获得内外置sd卡信息,是否可读写的权限。
在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中:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制代码
使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。
StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
在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中:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制代码
使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。
StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
#12
我遇到了同样的问题,想向你请教下!
是否是把这段代码 <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制到framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。这两文件里面
然后
定义android.permission.WRITE_MEDIA_STORAGE这个就不会报错了?
#13
you can use-permission for <permission name="android.permission.WRITE_MEDIA_STORAGE" > in androidmanifest.xml file.
#14
使用真机调试手机连接进入后会一个usb数据存储开关,软件读写不了SD卡的
#15
14楼正解啊!
#1
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
不是user
不是user
#2
我向android的sdcard中创建文件提示如下错误:
java.io.IOException: open failed: EACCES (Permission denied)
java.io.File.createNewFile(File.java:940)
注:我已经添加过读写权限了
<uses-permission android:name……
哈哈 1L正确 LZ在哪里copy的权限写法....
#3
有时某些错误是由于粗心造成的
#4
修改后,还是同样的错误。有没有其他办法
#5
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
#6
好像2.2以上的版本要这么写
File f = new File(path);
if(!if.exists()){
file.createNewFile();
}
如果还是不行就是虚拟机没有sdcard的size,你可以再创建虚拟机中双击你已经创建好了的虚拟机看看你们的想象信息
File f = new File(path);
if(!if.exists()){
file.createNewFile();
}
如果还是不行就是虚拟机没有sdcard的size,你可以再创建虚拟机中双击你已经创建好了的虚拟机看看你们的想象信息
#7
我也遇到了lz同样的问题,坐等呀
#8
好像2.2以上的版本要这么写
File f = new File(path);
if(!if.exists()){
file.createNewFile();
}
如果还是不行就是虚拟机没有sdcard的size,你可以再创建虚拟机中双击你已经创建好了的虚拟机看看你们的想象信息
还是不行啊
#9
修改后,还是同样的错误。有没有其他办法
请问你最后怎么解决的?
#10
1.
在
android4.0
源码出来以后,关于
sd
卡问题似乎没有解决好,起码上层
api
中没
有体现到位。其实在
framework
层中有相应的类去获得内外置
sd
卡信息,是否
可读写的权限。
在
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
中:
[html]
view plaincopyprint?
1.
<
permission
name
=
"android.permission.WRITE_EXTERNAL_STORAGE"
>
2.
<group
gid
=
"sdcard_rw"
/>
3.
<
/permission>
4.
5.
<
permission
name
=
"android.permission.WRITE_MEDIA_STORAGE"
>
6.
<group
gid
=
"media_rw"
/>
7.
<
/permission>
使用到的类主要是
framework/base/core/java/android/os/storage/StorageVolume.java
及相
同目录下的
StorageManager.java
文件。
StorageManager
类可以获得所有的存储媒体列表,
及
StorageVolume
类型
的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
#11
在android4.0源码出来以后,关于sd卡问题似乎没有解决好,起码上层api中没有体现到位。其实在framework层中有相应的类去获得内外置sd卡信息,是否可读写的权限。
在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中:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制代码
使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。
StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
在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中:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制代码
使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。
StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
#12
在android4.0源码出来以后,关于sd卡问题似乎没有解决好,起码上层api中没有体现到位。其实在framework层中有相应的类去获得内外置sd卡信息,是否可读写的权限。
在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中:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制代码
使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。
StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
我遇到了同样的问题,想向你请教下!
是否是把这段代码 <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制到framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。这两文件里面
然后
定义android.permission.WRITE_MEDIA_STORAGE这个就不会报错了?
#13
在android4.0源码出来以后,关于sd卡问题似乎没有解决好,起码上层api中没有体现到位。其实在framework层中有相应的类去获得内外置sd卡信息,是否可读写的权限。
在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中:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制代码
使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。
StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。
希望可以帮助遇到相同问题的童鞋。
我遇到了同样的问题,想向你请教下!
是否是把这段代码 <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
</permission>
复制到framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。这两文件里面
然后
定义android.permission.WRITE_MEDIA_STORAGE这个就不会报错了?
you can use-permission for <permission name="android.permission.WRITE_MEDIA_STORAGE" > in androidmanifest.xml file.
#14
使用真机调试手机连接进入后会一个usb数据存储开关,软件读写不了SD卡的
#15
14楼正解啊!