簡體   English   中英

在Android中格式化SD卡

[英]formatting SD CARD in Android

我要格式化SD卡,正在使用以下代碼。 但是SD卡無法安裝。

public boolean formatSD() {
        boolean bool = false;
        IMountService mountService = null;
        try{
            IBinder ibi = ServiceManager.getService("mount");
            if(ibi!=null) {
                mountService = IMountService.Stub.asInterface(ibi);
                String extern_sd = Environment.getFlashStroageDirectory().getAbsolutePath();
                mountService.unmountVolume(extern_sd, true);

                Thread.sleep(4000);
                int result_format = mountService.formatVolume(extern_sd);       
                System.out.println("result_format: "+result_format);          
                if(result_format==0){
                    Thread.sleep(4000);

                    int result_mount = mountService.mountVolume(extern_sd);
                    System.out.println("result_mount:  "+ result_mount);
                }
                bool = true;
            }
        }catch(Exception e){
            System.out.println("Exception format: "+e.getMessage());
        }
        return bool;
    }

有人可以告訴我我做錯了什么嗎? 謝謝

嘗試這個

 public void wipeMemoryCard() {
    File deleteMatchingFile = new File(Environment
            .getExternalStorageDirectory().toString());
    try {
        File[] filenames = deleteMatchingFile.listFiles();
        if (filenames != null && filenames.length > 0) {
            for (File tempFile : filenames) {
                if (tempFile.isDirectory()) {
                    wipeDirectory(tempFile.toString());
                    tempFile.delete();
                } else {
                    tempFile.delete();
                }
            }
        } else {
            deleteMatchingFile.delete();
        }
    } catch (Exception e) {
        Utils.log(e.getMessage());
    }
}

private static void wipeDirectory(String name) {
    File directoryFile = new File(name);
    File[] filenames = directoryFile.listFiles();
    if (filenames != null && filenames.length > 0) {
        for (File tempFile : filenames) {
            if (tempFile.isDirectory()) {
                wipeDirectory(tempFile.toString());
                tempFile.delete();
            } else {
                tempFile.delete();
            }
        }
    } else {
        directoryFile.delete();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM