android 获取u盘名字_Android 获取U盘的卷标(支持中文卷标)

本文详细介绍了Android获取U盘卷标的过程,包括盘符与卷标的区别,如何通过反射调用StorageVolume获取卷标,以及在Vold和blkid中的实现。特别指出,对于支持中文卷标的处理,涉及到字符集转换,如从GBK转UTF-8,以确保在Linux系统中正确显示。
摘要由CSDN通过智能技术生成

[在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎

1: 盘符 和 卷标的区别 之前被这个概念迷惑了很久, 走了不少弯路。 盘符 - window下的概念。 例如 C: 盘 D: 盘, C和D 这是就是盘符。 Linux下无对应的概念。 卷标 - 例如 C 盘如果命名为系统, D盘命名为电影, 系统和电影 这才是卷标。 Linux下也有这东西, 这个属于文件系统的部分。

2: Android 下如何获取卷标 StorageVolume.java 中的 public String getUserLabel() 获取。

3: Android现在支持的情况 如果这么简单获取那就方便了, 首先  StorageVolume.java 这个类是不公开的, 获取方法可以通过反射。 其次  public String getUserLabel()  这个方法, 底层和上层根本就没调通(Android4.4的原生代码部分, 我看是调试通过了)。

1: Vold 接收到 U 盘插入事件。 执行 Volume.cpp 的 int Volume::mountVol() 方法 这里调用  int Volume::extractMetadata(const char* devicePath)方法 。

/*

* Use blkid to extract UUID and label from device, since it handles many

* obscure edge cases around partition types and formats. Always broadcasts

* updated metadata

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值