`
369540808
  • 浏览: 196941 次
文章分类
社区版块
存档分类
最新评论

Android--SDcard permission权限,mounted挂载,Available space可用空间,TotalSpace总空间

 
阅读更多


一、在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;



getAvailableBlocks() and getBlockSize() are bothdeprecated in API 18 so I would do some kind of check on your build version to make sure you are applying the correct methods:

		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模板

    STM32F746-FreeRTOS-STemWin-SDCard-QSPI-UART模板,自己建的工程,分组明确,非CUBE生成,测试通过,显示触摸都正常,有中文注释

    Android数据存储之--SDCard

    Android数据存储之--SDCard的源代码

    Android 解析如何检测获取SDCard内存剩余空间.rar

    SDCard存储卡在 Android 手机上是可以随时插拔的,每次的动作都会引起Android系统ACTION_BROADCAST,本例子将计算出 SDCard 的剩余容量和总容量。供测试的sd卡中存了两首歌和一个30M的文件,现在检测剩余的空间正好...

    openwrt-orangepi-zero-ext4-sdcard.img.gz

    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讲解。希望可以对你们 有帮助哦

    android开发实例-sdcard文件读写及WIFI检测

    android开发实例-sdcard文件读写 WIFI检测、下载文件等 开发环境:JAVA SDK1.7及android最新的开发包

    修改system读取sdcard权限.rar

    android修改system读取sdcard权限的一份代码

    Android代码-android_emulator_hacks

    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

    STM32F401CCU6-SPI-SDCARD-FATS.rar

    STM32 HAL库SPI接口FATS文件操作访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台。具体介绍见CSDN博文《STM32存储左右互搏 SPI总线FATS文件读写SD/MicroSD/TF卡》:...

    Android-SD卡文件夹创建和删除实现

    Android-SD卡文件夹创建和删除实现 * 获取SD卡中的目录 * 功能: * 创建文件夹,删除文件夹,返回键退出程序 * ListView 使用BaseAdapter

    Android数据存储之Sdcard

    Android数据存储之Sdcard,Android数据存储之Sdcard,自己写的简单例子,需要的可以参考一下。

    STM32F103VET6-SDIO-SDCARD-FATS.rar

    STM32 HAL库SDIO接口FATS文件操作访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台,范例针对STM32F103VET6芯片实现。具体介绍见CSDN博文《STM32存储左右互搏 SDIO总线FATS文件读写SD/MicroSD/TF卡》:...

    STM32F401RCT6-SDIO-SDCARD-FATS.rar

    STM32 HAL库SDIO接口FATS文件操作访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台,范例针对STM32F401RCT6芯片实现。具体介绍见CSDN博文《STM32存储左右互搏 SDIO总线FATS文件读写SD/MicroSD/TF卡》:...

    Android获取内置sdcard跟外置sdcard路径

    主要介绍了Android获取内置sdcard跟外置sdcard路径的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

    STM32F103VET6-SDIO-SDCARD.rar

    STM32 HAL库SDIO接口访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台。具体介绍见CSDN博文《STM32存储左右互搏 SDIO总线读写SD/MicroSD/TF卡》:https://pegasus.blog.csdn.net/article/details/130264111 ...

    STM32F401CCU6-SPI-SDCARD.rar

    STM32 HAL库SPI接口访问SD卡/TF卡系列的范例代码,采用STM32CUBEIDE开发平台。具体介绍见CSDN博文《STM32存储左右互搏 SPI总线读写SD/MicroSD/TF卡》:https://pegasus.blog.csdn.net/article/details/130267793 。

    android 模拟器中使用SDCard

    如何在 android 模拟器中使用SDCard

    Android编程读取sd卡中图片的方法

    本文实例讲述了Android读取sd卡中图片的方法。分享给大家供大家参考,具体如下: 一、获取读取SD卡的权限 &lt;!--在SDCard中创建与删除文件权限 --&gt; &lt;uses android:name=android.permission.MOUNT_UNMOUNT_FILE...

    USB-HOST-SDcard.rar_sd host_sdcard_读取SD卡 串口

    通过USB将SD卡中的数据读取出来,并通过串口显示,同时在LCD输出相关画面

    AdaptiveCards-main_sdcard_

    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

Global site tag (gtag.js) - Google Analytics