一、在Manifest.xml文件中,写外部设备写权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
如果是用得模拟器,要确保创建AVD时,已经为SDcard分配了空间。
二、判断SDcard有没有挂载,若没有挂载,则弹提示:
if(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
Toast.makeText(this, "External SD card not mounted没有挂载", Toast.LENGTH_LONG).show();
}
三、SDcard总空间,可用空间:
package com.jiangge.sdcardsize;
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.text.format.Formatter;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.tv_show);
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlockCounts = stat.getBlockCount();
long availableBlocks = stat.getAvailableBlocks();
long totalSize = blockSize * totalBlockCounts;
long avaliableSize = availableBlocks * blockSize;
String totalSizeStr = Formatter.formatFileSize(this, totalSize);
String avaliableSizeStr = Formatter.formatFileSize(this, avaliableSize);
textView.setText("总内存:" + totalSizeStr + "\n" + "可用内存:" + avaliableSizeStr);
}
}
小米手机真机调试结果:(可以在手机中,Menu->Settings->SD card and phone storage's number)
StackOverFlow 上一个问答:
点击打开链接
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
double sdAvailSize = (double)stat.getAvailableBlocks()
* (double)stat.getBlockSize();
//One binary gigabyte equals 1,073,741,824 bytes.
double gigaAvailable = sdAvailSize / 1073741824;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
@SuppressWarnings("deprecation")
long sdAvailSize = (long) stat.getAvailableBlocksLong() * (long) stat.getBlockSizeLong();
} else {
@SuppressWarnings("deprecation")
double sdAvailSize = (double) stat.getAvailableBlocks() * (double) stat.getBlockSize();
}
分享到:
相关推荐
STM32F746-FreeRTOS-STemWin-SDCard-QSPI-UART模板,自己建的工程,分组明确,非CUBE生成,测试通过,显示触摸都正常,有中文注释
Android数据存储之--SDCard的源代码
SDCard存储卡在 Android 手机上是可以随时插拔的,每次的动作都会引起Android系统ACTION_BROADCAST,本例子将计算出 SDCard 的剩余容量和总容量。供测试的sd卡中存了两首歌和一个30M的文件,现在检测剩余的空间正好...
OpenWrt-Lede_18.06.02 OrangePi Zero wifi-xr819 and soc-audio enabled! OrangePi Zero 安装OpenWrt 能够实现wifi和播放音乐。 详细安装和操作步骤: First Run boot-config: ...Click Create a backup of uboot (dtb...
android-sdcard讲解。希望可以对你们 有帮助哦
android开发实例-sdcard文件读写 WIFI检测、下载文件等 开发环境:JAVA SDK1.7及android最新的开发包
android修改system读取sdcard权限的一份代码
DEPRECATED ...emulator -avd AVDNAME -no-window -no-audio -sdcard sdcard.img -qemu We wait for the devices to be booted (right now we check shell getprop init.svc.bootanim, which is suboptim
STM32 HAL库SPI接口FATS文件操作访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台。具体介绍见CSDN博文《STM32存储左右互搏 SPI总线FATS文件读写SD/MicroSD/TF卡》:...
Android-SD卡文件夹创建和删除实现 * 获取SD卡中的目录 * 功能: * 创建文件夹,删除文件夹,返回键退出程序 * ListView 使用BaseAdapter
Android数据存储之Sdcard,Android数据存储之Sdcard,自己写的简单例子,需要的可以参考一下。
STM32 HAL库SDIO接口FATS文件操作访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台,范例针对STM32F103VET6芯片实现。具体介绍见CSDN博文《STM32存储左右互搏 SDIO总线FATS文件读写SD/MicroSD/TF卡》:...
STM32 HAL库SDIO接口FATS文件操作访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台,范例针对STM32F401RCT6芯片实现。具体介绍见CSDN博文《STM32存储左右互搏 SDIO总线FATS文件读写SD/MicroSD/TF卡》:...
主要介绍了Android获取内置sdcard跟外置sdcard路径的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
STM32 HAL库SDIO接口访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台。具体介绍见CSDN博文《STM32存储左右互搏 SDIO总线读写SD/MicroSD/TF卡》:https://pegasus.blog.csdn.net/article/details/130264111 ...
STM32 HAL库SPI接口访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台。具体介绍见CSDN博文《STM32存储左右互搏 SPI总线读写SD/MicroSD/TF卡》:https://pegasus.blog.csdn.net/article/details/130267793 。
如何在 android 模拟器中使用SDCard
本文实例讲述了Android读取sd卡中图片的方法。分享给大家供大家参考,具体如下: 一、获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --> <uses android:name=android.permission.MOUNT_UNMOUNT_FILE...
通过USB将SD卡中的数据读取出来,并通过串口显示,同时在LCD输出相关画面
Adaptive Cards are a new way for developers to exchange content in a common and consistent way. Get started today by putting Adaptive Cards into Microsoft Teams