android 获得SDCard信息

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <!-- 显示block的数量的标签控件 -->
    <TextView
        android:id="@+id/tv_TotalBlocks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <!-- 显示block的大小的标签控件 -->
    <TextView
        android:id="@+id/tv_BlocSize"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <!-- 显示可用block的标签控件 -->
    <TextView
        android:id="@+id/tv_AvailaBlock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <!-- 显示空block的标签控件 -->
    <TextView
        android:id="@+id/tv_FreeBlock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <!-- 显示SDCard的总大小的标签控件 -->
    <TextView
        android:id="@+id/tv_SDTotalSize"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <!-- 显示SDCard的剩余大小的标签控件 -->
    <TextView
        android:id="@+id/tv_SDFreeSize"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
package com.example.yanlei.yl2;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import java.io.File;

public class MainActivity extends AppCompatActivity {
    private TextView mTvTotalBlocks;        //SDCard上BLOCK总数
    private TextView mTvBlocSize;            //SDCard上每个block的SIZE
    private TextView mTvAvailaBlock;        //可供程序使用的Block的数量
    private TextView mTvFreeBlock;            //剩下的所有Block的数量(包括预留的一般程序无法使用的块)
    private TextView mTvSDTotalSize;        //SDCard 总容量大小MB
    private TextView mTvSDFreeSize;            //SDCard 剩余大小MB

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 得到布局中的控件
        findView();
        // 绑定控件事件
        SDCardSizeTest();
    }

    private void findView() {
        // 绑定控件
        mTvTotalBlocks = (TextView)findViewById(R.id.tv_TotalBlocks);
        mTvBlocSize = (TextView)findViewById(R.id.tv_BlocSize);
        mTvAvailaBlock = (TextView)findViewById(R.id.tv_AvailaBlock);
        mTvFreeBlock = (TextView)findViewById(R.id.tv_FreeBlock);
        mTvSDTotalSize = (TextView)findViewById(R.id.tv_SDTotalSize);
        mTvSDFreeSize = (TextView)findViewById(R.id.tv_SDFreeSize);
    }

    public void SDCardSizeTest() {
        // 取得SDCard当前的状态
        String sDcString = android.os.Environment.getExternalStorageState();

        //如果当前系统有sdcard存在
        if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) {
            // 取得sdcard文件路径
            File pathFile = android.os.Environment
                    .getExternalStorageDirectory();
            //得到sdcard的状态
            android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath());

            // 获取SDCard上BLOCK总数
            long nTotalBlocks = statfs.getBlockCount();
            mTvTotalBlocks.setText("SDCard上BLOCK总数: "+nTotalBlocks);

            // 获取SDCard上每个block的SIZE
            long nBlocSize = statfs.getBlockSize();
            mTvBlocSize.setText("SDCard上每个bloc的SIZE:"+nBlocSize);

            // 获取可供程序使用的Block的数量
            long nAvailaBlock = statfs.getAvailableBlocks();
            mTvAvailaBlock.setText("可供程序使用的Block的数量 : " + nAvailaBlock);

            // 获取剩下的所有Block的数量(包括预留的一般程序无法使用的块)
            long nFreeBlock = statfs.getFreeBlocks();
            mTvFreeBlock.setText("剩下的所有Block的数量: " + nFreeBlock);

            // 计算SDCard 总容量大小MB
            long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024;
            mTvSDTotalSize.setText("SDCard 总容量大小MB: " + nSDTotalSize +"MB");

            // 计算 SDCard 剩余大小MB
            long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024;
            mTvSDFreeSize.setText(" SDCard 剩余大小MB: " + nSDFreeSize +"MB");
        }
    }
}
时间: 2024-10-12 09:04:15

android 获得SDCard信息的相关文章

Android获取Exif信息

获取Exif信息 代表的是文件的头信息; 步骤: 步骤一: // 获取指定的文件的头信息对象 ExifInterface exif = new ExifInterface("/sdcard/x.jpg"); 步骤二: 获取指定的头信息: // 获取指定的信息 // 获取拍摄时间 String time =exif.getAttribute(ExifInterface.TAG_DATETIME); System.out.println("拍摄时间是:===" + ti

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u

android开发异常信息收集程序代码

首先创建全局的Application ,此Application全局通用. package com.demo.utils; import com.demo.exception.CrashHandler; import android.app.Application; /** * 全局的context,任意位置调用 * @author Administrator * */ public class GlobalApplication extends Application { private st

Android系统应用信息中存储和缓存的计算方法

进行如下操作: 设置->应用->选择一个应用->应用信息 会到达如下界面: 可以看到这个应用占用的磁盘空间. 先说结果,这几项会计算哪些文件(夹). 1.应用,由三项相加组成 /data/data/com.myapp/lib,即so库文件夹大小 /data/app/com.myapp-1.apk,原始apk文件的复制 /data/dalvik-cache/[email protected]@[email protected],dalvik虚拟机对dex文件的缓存 2.USB存储(应用).

Android Mms 接收信息流程

信息的接收工作是由底层来完成的,当有一个 新的信息时底层完成接收后会以Intent的方式来通知上层应用,信息的相关内容也包含在Intent当中,Android所支持的信息Intent都定 义在android.provider.Telephony.Intents里面. 短信的接收 短信接收,对于上层应用程序来讲就是要处理广播事件SMS_RECEIVED_ACTION,它是由Frameworks发出告诉上层有新的SMS已收 到.在Mms中,是由PrivilegedSmsReceiver来处理,它收到

android获取设备信息

public class DeviceInfo { private static Application APP = null; private static String sd_card = Environment.getExternalStorageDirectory()+File.separator+"wlcache"; public static Application getApp() { return APP; } // 获取手机型号 public static Strin

Android中SdCard的数据读写

import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.R.integer; import android.content.Context; import android.os.Environment; public class FileService { private Context context; public Fil

Android 使用SDcard进行文件的读取

平时我们需要在手机上面存储想音频,视频等等的大文件,以前学过使用File进行存储(使用File操作进行存储):由于考虑到手机本身的存储空间小,这时候我们需要把文件存储在SDcard中,今天自己也学习了一下在android进行sdcard的存储使用方法; 首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!-- 在SDCard中创建与删除文件权限 --

Android内存等信息

1. Linux中proc目录下文件详解 http://wenku.baidu.com/view/2ce89f00a6c30c2259019ef1.html 2. Android系统/proc目录详解 3. android proc 进程信息解析 http://wenku.baidu.com/view/6530ad58312b3169a451a4eb.html?re=view 4. How to get memory usage at run time in c++? 5. 使用getrusag