A. android 判斷SD卡是否存在及容量查詢
的簡單方法如下: 首先要在AndroidManifest.xml中增加SD卡訪問許可權 <!-- 在SDCard中創建與刪除文件許可權 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard寫入數據許可權 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>判斷SD卡是否存在privateboolean ExistSDCard() { if (android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED)) { returntrue; } elsereturnfalse; } 查看SD卡的剩餘空間publiclong getSDFreeSize(){ //取得SD卡文件路徑 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); //獲取單個數據塊的大小(Byte) long blockSize = sf.getBlockSize(); //空閑的數據塊的數量 long freeBlocks = sf.getAvailableBlocks(); //返回SD卡空閑大小 //return freeBlocks * blockSize; //單位Byte //return (freeBlocks * blockSize)/1024; //單位KB return (freeBlocks * blockSize)/1024 /1024; //單位MB } 查看SD卡總容量publiclong getSDAllSize(){ //取得SD卡文件路徑 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); //獲取單個數據塊的大小(Byte)long blockSize = sf.getBlockSize(); //獲取所有數據塊數long allBlocks = sf.getBlockCount(); //返回SD卡大小 //return allBlocks * blockSize; //單位Byte //return (allBlocks * blockSize)/1024; //單位KBreturn (allBlocks * blockSize)/1024/1024; //單位MB }
B. android 判斷sdcard是否存在,以及寫入許可權
/**
* 判斷手機是否有SD卡。
*
* @return 有SD卡返回true,沒有返回false。
*/
public static boolean hasSDCard() {
return Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState());
}
Android app開發過程中,有時需要獲取sdcard路徑,在該路徑下進行文件訪問操作
工具/原料
eclipse
android sdt
android手機
方法/步驟
啟動eclipse,新建Android工程(具體創建方法,請參考筆者之前所寫經驗《如何建Android工程》);
找到res--》layout--》activity_main.xml,雙擊點開
從面板中拖兩個button到界面上,分別命名:
getDIR(此button用於示範獲取到的sdcard路徑)
dir創建新文件夾(此button用於示範在sdcard路徑下新建文件夾)
對button分辨綁定點擊事件
//獲取sdcard路徑
public void getDIR(View v){
String sdpath = Environment.getExternalStorageDirectory().toString();
AlertDialog.Builder build = new Builder(this);
build.setMessage(sdpath).show();
}
//在手機sdcard路徑下新建名為jingyan的文件夾
public void newPackage(View v){
String mkdir = Environment.getExternalStorageDirectory()+"/jingyan/test.txt";
File file = new File(mkdir);
AlertDialog.Builder build = new Builder(this);
if(file.exists()){
build.setMessage("文件夾已存在").show();
}else{
file.mkdirs();
build.setMessage("新建成功").show();
}
}
在【AndroidManifest.xml】配置文件中添加app對文件的操作許可權
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
安裝之後演示效果如下:
點擊getDIR--》彈出sdcard路徑
點擊dir創建新文件夾--》
如果文件夾已存在,則提示「文件夾已存在」
反之,則提示"新建成功",同時在手機sdcard中可以找到新建成功的文件夾
C. 安卓SD卡讀寫許可權
在AndroidManifest.xml中加入訪問SDCard的許可權如下:
<!-- 在SDCard中創建與刪除文件許可權 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard寫入數據許可權 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
要往SDCard存放文件,程序必須先判斷手機是否裝有SDCard,並且可以進行讀寫。
D. android 如何能知道是否有內置sd卡的寫入許可權
你在sdcard下createNewFile一下試試不可以嗎?如果返回false,或者拋出異常,那就是沒有許可權嘛
File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/text.txt");
file.createNewFile();