Android sdcard读写权限问题之中的一个

博主在刚刚在学习过程中发现了一个关于android往sdcard读写的问题,

配置了该配置的提示无读写权限。

在AndroidManifest.xml文件里配置清单例如以下

<manifest xmlns:android="http://schemas.android.com/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"/>

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="19" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<provider

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 = null;

FileOutputStream fos = null;

try{

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);

}

}

}else{

Log.d("error", "无读写权限"+Environment.getExternalStorageDirectory()+"/region.db");

}

}catch(Exception ex){

Log.d("error", ex.getMessage());

}finally{

// 关闭流  略...

}

return null;

然后执行的时候提示无权限訪问该sdcard路径,可是我们配置的也配置了。网上有说是sdk版本号的问题,

说2.2以后的版本号不能用FileOutputStream 创建文件,搞了半天。还是一样,最后我用手机測试了一下,

发现文件创建成功,突然。我想了一下,是否有sdcard呢?

d---------,问题竟然出在这里,难道是虚拟机没有装载sdcard。紧接着,我重新启动了一把。OK搞定

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2gxMDY2MDM0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

时间: 2024-10-11 11:00:16

Android sdcard读写权限问题之中的一个的相关文章

Android sdcard读写权限问题之一

博主在刚刚在学习过程中发现了一个关于android往sdcard读写的问题, 配置了该配置的提示无读写权限. 在AndroidManifest.xml文件中配置清单如下 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.custom" android:versionCode="1" android:version

Android 外置SDCard读写权限总结

在Android 4.4中,如果同时使用了机身存储和SD卡, 那么应用程序将无法在SD卡中创建.修改.删除数据.但是应用程序仍然可以往主存储(机身存储)的任意目录中写入数据,不受任何限制. Google表示, 这样做的目的是,,通过这种方式进行限制,系统可以在应用程序被卸载后清除遗留文件.比如,你无法使用酷我音乐盒下载保存Mp3到外置存储卡了,也无法使用快读免费小说将TXT版小说下载保存到外置存储卡了 在Android开发者网站的 "外部存储技术信息"文档中描述道 :  WRITE_E

Android 5.x SEAndroid/SElinux内核节点的读写权限【学习笔记】

本文转载自:http://blog.csdn.net/tung214/article/details/44461985 Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问. 本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限. 第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来

Android 4.4以上的存储读写权限

最近遇到一个奇怪现象,直接往Android的SD卡根目录写入文件,报异常:open failed EACCES:permission denied. 已经在manifest.xml中加入android.permission.WRITE_EXTERNAL_STORAGE.权限 查询资料后才发现是由于Android 4.4以上限制了对SD卡(二级存储)的访问限制. 具体参看: Android_数据存储_File android4.4上sd卡的读写权限

Android 如何在java/native层修改一个文件的权限(mode)与用户(owner)?

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 如何在java/native层修改一个文件的权限(mode),用户(owner),组(group),以满足安全需要? [Keyword] 文件权限 文件用户 mode owner chomd chown permission [Solution] 在nativ

IOS开发笔记之十七——一个关于工程目录读写权限的问题

1.从互联网上或者其他途径拿过来的工程代码,往往会报下面的提示: (1)打开文件的时候出现窗口提示You don’t have permission to save the file “project.xcworkspace” in the folder “****.xcodeproj”. (2)进入Xcode时出现窗口提示Could not add write permission to the file because you do not own it. Try modifying the

Android 读写权限,已经授权情况下,仍然(Permission denied)

首次安装APP,获取读写权限以后, 当读取文件时候,仍然会遇见(Permission denied)错误,解决方案是杀掉APP,重新打开APP即可. 应该属于部分版本系统的bug,直到APP所有的processes被killed,操作系统才会更新设置里面的权限设置,解决方案 代码判断是否授权成功的状态以后再捕获读取文件抛的异常(Permission denied),然后重启APP即可. 原文地址:https://www.cnblogs.com/spring87/p/9570270.html

android文件读写的相关问题

将文件写入ROM中 如果我们应用在当前包下创建了一个文件,并且我们希望别的应用程序 可以访问我们的文件 一定要指定文件的权限  Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE 如果我们不希望别人修改,访问你的数据 Context.MODE_PRIVATE 如果我们希望每次存取数据 都是以追加方式(该方式只是一种文件添加的策略并非读写权限) Context.MODE_APPEND 默认文件的访问修饰权限 是私有 以私有方式创建的文件

在android中读写文件

在android中读写文件 android中只有一个盘,正斜杠/代表根目录. 我们常见的SDK的位置为:/mnt/sdcard 两种最常见的数据存储方式: 一.内存 二.本地 1.手机内部存储 2.外部存储设备(SD卡) 在SD卡中读数据是不需要权限的,但是在SD卡中写数据是要权限的: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 读写文件的方式就是用的Java的文件