在所有版本中,除了Nougot版本外,我都能获得SdCard详细信息,例如序列号,CID号..。

我正在使用以下方法来获取SdCard的详细信息。两者都可以正常工作,除了牛轧糖。这些路径在牛轧糖版本中返回null

public void getCID() {

    File input = new File("/sys/class/mmc_host/mmc1");
    String cidDirectory = null;

    File[] sid = input.listFiles();

    for (int i = 0; i < sid.length; i++) {
        if (sid[i].toString().contains("mmc1:")) {
            cidDirectory = sid[i].toString();
            String SID = (String) sid[i].toString().subSequence(cidDirectory.length() - 4, cidDirectory.length());
        }
    }

    try {
        BufferedReader CID = new BufferedReader(new FileReader(cidDirectory + "/cid"));


    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

String getSDCARDiD() {

    try {
        File file = new File("/sys/block/mmcblk1");
        if (file.exists() && file.isDirectory()) {

            memBlk = "mmcblk1";
        } else {
            //System.out.println("not a directory");
            memBlk = "mmcblk0";
        }

        Process cmd = Runtime.getRuntime().exec("cat /sys/block/" + memBlk + "/device/cid");
        BufferedReader br = new BufferedReader(new InputStreamReader(cmd.getInputStream()));
        sd_cid = br.readLine();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return sd_cid;
}



为什么它给空我不明白。
提前致谢

最佳答案

高于7.0,我们必须在从StorageManager获得的StorageVolume上使用 StorageVolume.getUuid()

07-24 09:33