您的位置:首页 > 移动开发 > Android开发

android transfer error: Read-only file system

2013-04-02 11:18 429 查看
如何一起动就让sdcard有读写权限呢?

-------------------------------问题-----------------------------

在程序中访问SDCard,你需要申请访问SDCard的权限。

在AndroidManifest.xml中加入访问SDCard的权限如下:

<!-- 在SDCard中创建与删除文件权限 -->

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据权限 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

还要注意的加权限的位置:

<?xml version="1.0" encoding="utf-8"?>

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

-------------------------------sdcard问题-------------------------

为什么需要sdcard

在android 中网页中图片的下载都会自动向sdcard 寻找空间,sdcard在开发测试中也是非常之必要。

1:如何在模拟器中加载 sdcard

通过文档中介绍可得如下示例:

mksdcard -l sdcard 100M sdcard.img // 这样会在Tools的目录下产生 sdcard 在pc 中的镜像文件。

模拟器启动的时候加载sdcard

emulator -sdcard sdcard.img -avd myavd2

这样后模拟器就可以看到自己的sdcard,通过adb shell 可以登录查看。

2:遍历sdcard

如何找到android 中的些特殊路径呢,像sdcard这种特殊路径,其实只要看

android.os.Environment 这个类便很清晰了,其中有如下的方法:

getRootDirectory();

getDownloadCacheDirectory();

getExternalStorageDirectory();

getExternalStorageState(); 可以得到当前的sdcard 的各个状态
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: