如何以编程方式读取SD卡的CID寄存器,其中包含序列号和其他信息?我可以通过Android Java或原生代码来实现吗?
提前谢谢你,埃里克
发布于 2011-03-04 16:44:28
下面是获取SID和CID的示例代码
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.d(TAG, " SID of MMC = " + SID);
break;
}
}
BufferedReader CID = new BufferedReader(new FileReader(
cid_directory + "/cid"));
String sd_cid = CID.readLine();
Log.d(TAG, "CID of the MMC = " + sd_cid);
} catch (Exception e) {
Log.e("CID_APP", "Can not read SD-card cid");
}
} else {
Toast.makeText(this, "External Storage Not available!!",
Toast.LENGTH_SHORT).show();
}
发布于 2011-08-26 05:30:38
我设法找到我的SD卡CID通过usb插入我的手机到我的电脑,并使用adb工具(Android SDK)
$ adb shell
# cat /sys/block/mmcblk0/../../cid
我的手机是根的,所以我不确定这是否可以在非根的手机上访问。
也可以试试
$ adb shell
# cd /sys/block/mmcblk0/../../
# ls
block fwrev preferred_erase_size
cid hwrev scr
csd manfid serial
date name subsystem
driver oemid type
erase_size power uevent
内核文档http://www.mjmwired.net/kernel/Documentation/mmc/mmc-dev-attrs.txt中对这些进行了解释
发布于 2010-09-07 00:39:46
到目前为止,我找到的唯一提供id的代码是C++或C# http://jo0ls-dotnet-stuff.blogspot.com/2008/12/read-secure-digital-sd-card-serial.html
http://jo0ls-dotnet-stuff.blogspot.com/2008/12/read-cid-and-csd-c-implementation.html
如果你是一名C++开发人员,你也许能够把它用在安卓上。
https://stackoverflow.com/questions/3348643
复制相似问题