android是否判斷sd卡
1. android 判斷一個文件是否存在
sd卡目錄請不要直接使用/storage/sdcard0/,你這樣試試
String SDPATH = Environment.getExternalStorageDirectory().getPath() + "//";
File f = new File(SDPATH +"/Manual/test.pdf")
另外你是不是忘記加許可權了<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2. Android如何檢測SD卡某個目錄是否存在
下面是判斷的方法。 在SD卡創建文件 需要在AndroidManifest.xml中添加許可權 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/ . //獲得當前外部儲存設備的目錄 String SDCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;/** 判斷SD卡mp3目錄是否存在*/public void isDirExist(String dir){ File file = new File(SDCardRoot + dir + File.separator);
3. 怎樣查看android虛擬機是否有sdcard
android虛擬機,也就是人們說的模擬器吧(現在都基本用手機測試了),打開ddms,看我發的圖:
代碼中判斷是否有sd卡:
Android中判斷SD卡是否存在,並且可以進行寫操作,可以使用如下代碼
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED))
{
//存在
}
4. Android判斷SD卡是否存在的實現
Android作為一個智能手機操作系統,SDK對SIM卡的讀取有相關的操作,都封裝在framework中
和SIM卡相關的類主要有以下幾個:
IccConstants (裡面記錄很多的常量,主要用來存儲某個欄位在SIM卡上的位置是什麼,比如ADN(sim卡上的電話本),6F3A, FDN(固定拔號 6F3B))IccCardStatus(記錄SIM卡的狀態,如ABSENT, READY,UNKNOW,ETC)
IccFileHandler(這個是用來SIM卡上的RECORD讀完後,要處理什麼事情)
IccRecords(SIM卡上的文件內容,每一個欄位,一個RECORD)
IccProvider(手機上的資料庫,讀出來的數據全放這)
IccUtils(裡面一般全是靜態方法,主要用來碼制轉換)
IccSmsInterfaceManager,IccCard(這個是一個抽象類,會根據上面手機的制式,自動起一個SIMCARD 或者RUIMCARD)
以GSM為例說下讀取的過程:
根據SIM卡的類型,進入SIMRecords, 開始探測SIM卡的狀態,因為,有些SIM卡會設置有PIN碼,如果SIM卡有PIN碼的話,手機會彈出輸入PIN碼的框,等待用戶進行解碼,注意,這個時候,如果PIN碼如果沒有解的話,手機是不會去讀SIM卡的,因為,讀SIM卡時,必須通過PIN才能去讀,只有一些比較特殊的欄位,可以不用,比如ECC 也就是緊急呼叫號碼(一般存在卡上,運營商定製的)。同時,這PIN碼未解的情況,手機中SIM卡的狀態也是PIN_REQURIED_BLOCK。
當解完PIN碼,或是手機沒有設置PIN碼,這時,手機的會探測到SIM是READY的狀態,手機只有檢測到SIM READY,才會發出讀卡的請求。
手機開始讀卡第一個是IMSI(International Mobile SubscriberIdentification Number)主要用來查找運營商的網路,裡面有MCC,MNC,ICCID(Integrate circuit card identity)唯一標識一個移動用戶。
當低層的MODEM讀到欄位結果後,會有一個返回結果,由於發送讀取請求時,有一個事件信息EVENT_GET_BINARY_SIZE_DONE,當有返回時,會直接交給IccFileHandler,然後由IccFileHandler轉發給SIMRecords,最後進行處理該欄位讀完後應該執行的操作。
5. 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中可以找到新建成功的文件夾
6. android判斷是否有sd卡
在Android開發中,判斷SD卡是否存在並查詢其可用空間是一項常見的需求。下面通過幾個方法來實現這一功能。首先,要判斷SD卡是否可用,可以通過檢查Environment.getExternalStorageState()的方法返回的狀態來實現。具體代碼如下:
public boolean avaiableMedia() { String status = Environment.getExternalStorageState(); if (status.equals(Environment.MEDIA_MOUNTED)) { return true; } else { return false; } }
當SD卡狀態為Environment.MEDIA_MOUNTED時,返回true表示SD卡存在。若狀態不是這一種,則返回false。
接下來,為了獲取SD卡的可用空間,可以使用StatFs類。通過該類,我們可以獲得單個數據塊的大小以及可用的數據塊數量,從而計算出SD卡的可用空間大小。代碼如下:
public long getSDFreeSize() { File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); long blockSize = sf.getBlockSizeLong(); long freeBlocks = sf.getAvailableBlocksLong(); return (freeBlocks * blockSize) / 1024 / 1024; }
這段代碼返回的是SD卡可用空間的大小,單位為MB。若需要以Byte或KB為單位,可以適當調整計算公式。
最後,如果想要獲取SD卡的總空間大小,同樣可以使用StatFs類。通過獲取所有數據塊數和單個數據塊的大小,我們可以計算出SD卡的總空間大小。代碼如下:
public long getSDAllSize() { File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); long blockSize = sf.getBlockSizeLong(); long allBlocks = sf.getBlockCountLong(); return (allBlocks * blockSize) / 1024 / 1024; }
這段代碼返回的是SD卡總空間的大小,單位也是MB。同樣,若需要以其他單位表示,可以調整計算公式。
7. android怎麼判斷sd卡是否掛載
android獲取sd卡路徑方法:
public String getSDPath(){
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED); //判斷sd卡是否存在
if (sdCardExist)
{
sdDir = Environment.getExternalStorageDirectory();//獲取跟目錄
}
return sdDir.toString();
}
不建議直接寫死android sd卡的路徑。
Android中判斷SD卡是否存在,並且可以進行寫操作,可以使用如下代碼
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED))
{
//TODO:
}