flutter - 如何在 Flutter 中读取 SD 卡 ID 号
问题描述
如何在颤振编程中以编程方式读取 SD 卡的 SID 和 CID?
是否有代码或插件可以帮助我获取 SD 卡的 SID 和 CID。
谢谢你。
解决方案
在颤振中没有直接的方法可以做到这一点,也没有任何颤振包可用,但您可以尝试直接的 android 代码。
尝试这个 :
String path2 = "/sys/block/mmcblk0/device";
BufferedReader serial;
BufferedReader name ;
BufferedReader manfid;
BufferedReader oemid;
BufferedReader mfDate;
BufferedReader CID;
serial = new BufferedReader(new FileReader(path2 + "/serial"));
name = new BufferedReader(new FileReader(path2 + "/name"));
manfid = new BufferedReader(new FileReader(path2 + "/manfid"));
oemid = new BufferedReader(new FileReader(path2 + "/oemid"));
mfDate = new BufferedReader(new FileReader(path2 + "/date"));
CID = new BufferedReader(new FileReader(path2 + "/cid"));
String sdSerial = serial.readLine();
String sdName = name.readLine();
String sdMfId = manfid.readLine();
String sdOemId = oemid.readLine();
String sdMfDate = mfDate.readLine();
String sdCid = CID.readLine();
或者也使用这个
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++) {
Log.d(TAG,"sid info "+sid[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 serial = new BufferedReader(new FileReader(cid_directory + "/serial"));
BufferedReader name = new BufferedReader(new FileReader(cid_directory + "/name"));
BufferedReader manfid = new BufferedReader(new FileReader(cid_directory + "/manfid"));
BufferedReader oemid = new BufferedReader(new FileReader(cid_directory + "/oemid"));
BufferedReader mfDate = new BufferedReader(new FileReader(cid_directory + "/date"));
BufferedReader CID = new BufferedReader(new FileReader(cid_directory + "/cid"));
String sdSerial = serial.readLine();
String sdName = name.readLine();
String sdMfId = manfid.readLine();
String sdOemId = oemid.readLine();
String sdMfDate = mfDate.readLine();
String sdCid = CID.readLine();
//确保在使用此代码之前检查 sdcard 是否存在;
7.0 以上:在您从 StorageManager 获得的 StorageVolume 上使用 StorageVolume.getUuid()。
该值是格式化卡时分配的卷 ID,其长度/格式因文件系统类型而异。对于 FAT32,它是 XXXX-XXXX,对于 NTFS,它是一个较长的十六进制字符串,对于内部大容量存储,它返回 null。
推荐阅读
- memory-management - 如何拆分分配区域,以便可以分别重新分配两个区域?
- javascript - 从 Google Analytics(分析)用户资源管理器中批量导出单个用户的 JSON 数据
- apache-spark - 如何使用pyspark数据框将数据存储到具有时间戳TIMESTAMP_NTZ的雪花中
- python - Chromedriver 无法正确启动
- c++ - 如何在 Qt3D 中优化点云渲染
- c# - 使用 Akavache 在 Xamarin.iOS 中读取缓存失败
- arrays - 是否有其他解决方案可以使用“R.applySpec”而不插入未更改的键值?
- excel - 我想使用 VBA 宏将特定列的数据(通过使用列标题)从一个工作簿复制到另一个工作簿
- c# - Dotnet 在 Mac ASP.NET Core 3 上意外退出
- asynchronous - dart 中的异步编程 (Futures, await)