跳至主要內容

数据存储到SD卡上以及SD卡相关的API


Android开发基础之把数据存储到SD卡上以及SD卡相关的API

u2639615252203821818fm27gp0.jpg
u2639615252203821818fm27gp0.jpg

前面我们把数据保存到应用的内部:/data/data/com.sunofbeaches.qqlogindemo/files

那么现在我们就开始学习怎么把这个数据保存到SD上!

一部分是内部存储空间:ROM ,可以理解这个Rom就是我们的windows电脑的系统盘。

另外一部分就是外置存储空间,也就是我们的SD卡,它就类似于我们电脑的外插存储设备。

SD卡的路径获取,就是和前面的一样,也是有API获取的:

File externalStorageDirectory = Environment.getExternalStorageDirectory();

为什么要这样子获取呢?就是因为不同的手机厂商,它们的扩展卡的名字不一样,通过这个API,就可以获取到它们的扩展卡的路径。

我们在实际开发中,会遇到这样的问题,怎么样知道这个手机没有SD卡?

我们通过一个API来判断这个SD卡是否已经挂在了

String state = Environment.getExternalStorageState();
            if (state.equals(Environment.MEDIA_MOUNTED)) {
                Log.d(TAG, "SD卡已经挂载,也就是可用的!");
            } else if (state.equals(Environment.MEDIA_UNMOUNTED)) {
                Log.d(TAG, "SD卡已经删除了...");
            }

去获取SDK卡相关的信息,比如:可用空间。

File exFile = Environment.getExternalStorageDirectory();
            Log.d(TAG, "Ext-FilePath == " + exFile);
            long freeSpace = exFile.getFreeSpace();
            //把long转成我们直观的空间大小,比如说:多少M,多少KB,多少GB。
            String sizeText = Formatter.formatFileSize(this, freeSpace);
            Log.d(TAG, "free size == " + sizeText);

在线课程:

https://www.sunofbeach.net/c/1443881236287311874