因为项目的需求,需要获取SD卡的唯一标识,找了多方资料,最后在google上面看到解决办法,在这里做笔记以防止忘记
我的demo代码
private String getSDCid(){
StringBuilder stringB = new StringBuilder();
if (isExteranlStorageAvailable()) {
try {
File input = new File("/sys/class/mmc_host/mmc1");
String cid_directory = null;
int i = 0;
File[] sid = input.listFiles();
for (i = 0; i < sid.length; i++) {
if (sid[i].toString().contains("mmc1:")) {
cid_directory = sid[i].toString();
String SID = (String) sid[i].toString().subSequence(
cid_directory.length() - 4,
cid_directory.length());
Log.e(TAG, " SID of MMC = " + SID);
// stringB.append("==SID=="+SID);
break;
}
}
BufferedReader CID = new BufferedReader(new FileReader(
cid_directory + "/cid"));
String sd_cid = CID.readLine();
Log.e(TAG, "CID of the MMC = " + sd_cid);
stringB.append("==sd_cid=="+sd_cid);
} catch (Exception e) {
Log.e(TAG, "Can not read SD-card cid");
}
} else {
Log.e(TAG, "External Storage Not available!!");
}
return stringB.toString();
}
因为是demo,所以上面的那个判断直接用true替换就可以了