早上好,
如何在移动设备上获取存储/ SD卡的序列号?我在Compact Framework V2.0上使用C#.Net 2.0。
感谢。
答案 0 :(得分:3)
Smart Device Framework provides a mechanism获取SD卡序列号和制造商ID。
答案 1 :(得分:1)
我不在机器上,我可以为您获取语法,但我相信您可以使用System.IO命名空间来获取基于IO的属性。
首先获取存储卡的DirectoryInfo。 (我不是100%在这里的代码,你可能需要测试,我会更新它,如果我可以到我的机器)
public DirectoryInfo GetStorageCard() {
DirectoryInfo deviceRoot = new DirectoryInfo("/");
foreach (DirectoryInfo dir in deviceRoot.GetDirectories())
if (dir.Attributes == FileAttributes.Directory & dir.Attributes = FileAttributes.Temporary)
return dir;
}
然后检查代码返回的DirectoryInfo上的所有属性。由于调试的乐趣,您应该能够看到序列号是否是可用属性之一。
如果没有,你可能需要寻找一些不受管理的东西。
希望这有帮助。
答案 2 :(得分:1)
您需要使用一些非托管API。具体而言,DeviceIoControl使用IOCT_DISK_GET_STORAGEID的“控制代码”。反过来,这将返回STORAGE_IDENTIFICATION结构。
这里有点棘手,因为STORAGE_IDENTIFICATION使用属性(dwSerialNumOffset)来指定从结构开头的(内存)偏移量,这很难转化为互操作调用。
修改:在MSDN论坛上找到VB.NET implementation