Android 外置 SD 卡
介绍
在 Android 设备中,外置 SD 卡是一种常见的存储设备,可以用于扩展设备的存储容量。本文将介绍如何在 Android 应用中访问和使用外置 SD 卡,并提供相应的代码示例。
访问外置 SD 卡
在 Android 中,可以通过系统服务 StorageManager
来访问外置 SD 卡。首先,我们需要获取 StorageManager
实例:
StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
然后,可以使用 getStorageVolumes()
方法来获取所有的存储卷,包括外置 SD 卡:
List<StorageVolume> storageVolumes = storageManager.getStorageVolumes();
接下来,我们可以遍历 storageVolumes
列表,找到外置 SD 卡的存储卷:
for (StorageVolume storageVolume : storageVolumes) {
if (storageVolume.isRemovable() && !storageVolume.isEmulated()) {
// 外置 SD 卡的存储卷
// ...
}
}
读取外置 SD 卡上的文件
一旦找到外置 SD 卡的存储卷,我们可以使用 getDirectory()
方法获取外置 SD 卡的根目录,并读取其中的文件:
File sdCardRoot = storageVolume.getDirectory();
File file = new File(sdCardRoot, "example.txt");
try {
FileInputStream fis = new FileInputStream(file);
// 读取文件内容
// ...
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
写入文件到外置 SD 卡
同样地,我们可以使用 getDirectory()
方法获取外置 SD 卡的根目录,并将文件写入其中:
File sdCardRoot = storageVolume.getDirectory();
File file = new File(sdCardRoot, "example.txt");
try {
FileOutputStream fos = new FileOutputStream(file);
// 写入文件内容
// ...
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
权限
在访问外置 SD 卡时,我们需要确保应用已经获得相应的权限。在 AndroidManifest.xml
文件中添加以下权限声明:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
甘特图
以下是一个访问外置 SD 卡的甘特图:
gantt
title 访问外置 SD 卡
section 获取 StorageManager
获取 StorageManager: 0, 1
section 获取存储卷
获取存储卷: 2, 4
section 遍历存储卷
遍历存储卷: 5, 8
section 读取/写入文件
读取/写入文件: 9, 12
类图
以下是访问外置 SD 卡的类图:
classDiagram
class StorageManager {
+getStorageVolumes()
}
class StorageVolume {
+isRemovable()
+isEmulated()
+getDirectory()
}
结论
通过使用 StorageManager
可以方便地访问和使用外置 SD 卡。在访问外置 SD 卡时,记得添加相应的权限声明。希望本文对你理解如何在 Android 应用中操作外置 SD 卡有所帮助。
参考资料
- [Android Developers - External Storage](
- [Android Developers - StorageManager](