1. 程式人生 > >獲取sd卡剩餘記憶體

獲取sd卡剩餘記憶體

建立新專案:
在activity_main.xml中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <TextView
        android:id
="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />
</RelativeLayout>

在MainActivity.java中:

package com.example.sdcard;

import java.io.File;

import android.os.Build;
import android.os.Bundle;
import
android.os.Environment; import android.os.StatFs; import android.text.format.Formatter; import android.widget.TextView; import android.app.Activity; public class MainActivity extends Activity { @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super
.onCreate(savedInstanceState); setContentView(R.layout.activity_main); File path = Environment.getExternalStorageDirectory(); StatFs stat=new StatFs(path.getPath()); long blockSize;//區塊大小 long availableBlocks;//可用區塊個數 //getBlockSize,getBlockCount,getAvailableBlocks方法只有在4.3之前使用 //所以判斷當前版本是否是4.3以上。 //Build.VERSION.SDK_INT 當前使用的安卓版本。Build.VERSION_CODES.JELLY_BEAN_MR2代表安卓4.3 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){ blockSize=stat.getBlockSizeLong(); availableBlocks=stat.getAvailableBlocksLong(); }else { blockSize=stat.getBlockSize(); availableBlocks=stat.getAvailableBlocks(); } //blocksize*availableBlocks得到sd卡以位元組為單位的剩餘容量 String text = formatSize(blockSize*availableBlocks); TextView tv=(TextView) findViewById(R.id.tv); tv.setText(text); } //formatSize方法是為了格式化以位元組為單位的剩餘容量 private String formatSize(long size){ return Formatter.formatFileSize(this, size); } }