Android是否会复用UsbDevice对象的设备ID?
Android UsbDevice.getDeviceId() 的ID复用问题
是的,getDeviceId()返回的整数ID完全有可能被复用。
Android系统对USB设备的ID是动态分配的,没有机制保留已断开设备的ID并禁止后续分配。具体来说:
- 当原ID为3的设备断开后,重新插入同一设备时,系统可能再次分配ID3;
- 即使插入另一台不同的USB设备,只要当前系统内没有其他设备占用ID3,新设备也可能被分配这个ID。
系统分配ID的逻辑通常基于设备连接的顺序或内部设备管理的资源调度,不会因为某个ID曾经被使用过就将其永久排除。
如果需要持久识别特定USB设备,不建议依赖getDeviceId(),应该使用以下更可靠的标识:
- 设备的厂商ID(
getVendorId())和产品ID(getProductId())组合; - 设备的序列号(
getSerialNumber(),需设备硬件支持)。
内容的提问来源于stack exchange,提问作者SoItBegins
相关产品推荐
相关产品推荐

