You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中检测USB设备?真机文件迁移应用适配求助

解决方案:真机WiFi连接ADB时无法查看USB存储的问题
  • 先确认系统挂载状态
    确保USB设备已被Android系统正常识别:打开设备自带的文件管理器,确认能看到USB存储的内容。如果系统都识别不了,先排查USB设备本身或设备的USB连接模式(需设置为「文件传输(MTP)」模式)。

  • WiFi ADB的局限性
    WiFi连接ADB时,Device File Explorer默认仅映射设备内部存储和内置SD卡,无法直接显示通过USB挂载的外部存储。这是因为WiFi ADB的文件传输通道未包含USB存储的挂载点映射,此时建议改用USB线直接连接设备,Device File Explorer就能识别到USB存储的路径(通常在/storage/UsbDriveA、/storage/usb0这类路径,不同厂商命名有差异)。

  • 代码层面定位USB路径
    即便Device File Explorer看不到,也能通过代码打印USB存储的实际路径来调试:

    File storageRoot = new File("/storage");
    if (storageRoot.exists() && storageRoot.isDirectory()) {
        for (File dir : storageRoot.listFiles()) {
            // 判断是否为可移除的外部存储(即USB设备)
            if (dir.isDirectory() && Environment.isExternalStorageRemovable(dir)) {
                Log.d("USB_DEBUG", "USB存储路径: " + dir.getAbsolutePath());
            }
        }
    }
    

    查看Logcat输出即可获取准确路径,验证代码是否能正确访问该目录。

  • 权限配置验证
    确保应用已配置必要权限:

    • 在AndroidManifest.xml中添加:
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <!-- Android 10+ 兼容旧文件API -->
      <application android:requestLegacyExternalStorage="true">
      </application>
      
    • Android 11+ 建议使用存储访问框架(SAF),通过ACTION_OPEN_DOCUMENT_TREE让用户手动选择USB存储根目录,获取持久访问权限,避免权限限制。
  • ADB命令辅助调试
    WiFi连接时,可通过ADB命令直接查看存储挂载情况:

    # 查看所有存储挂载点
    adb shell ls /storage
    # 查看存储使用情况,确认USB设备的挂载路径
    adb shell df
    

内容的提问来源于stack exchange,提问作者Josh Hunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:40:25