通过adb获取sdcard目录

2024-04-17

我正在制作一个应用程序,它通过 adb 从设备 SD 卡中提取文件(由 Android 应用程序保存)。 问题是不同的设备,有不同的SD卡目录

i.e:

  • sdcard
  • SD卡/external_sd

首先我发明了以下解决方案:

  1. 运行 adb shell
  2. ls
  3. 检查目录“sdcard”是否存在
  4. 如果是,运行 sdcard/ls 并检查 external_sd 是否存在
  5. 返回值。

但问题是我有两个三星设备GT-I9100 and GT-I9000并且都有一个目录sdcard/external_sd。当我检查时System.getenv("EXTERNAL_STORAGE")一个返回sdcard和另一个sdcard/external_sd。我需要提取之前保存到的文件System.getenv("EXTERNAL_STORAGE").

所以问题是:有没有命令可以获取sdcard目录 直接从 adb,无需访问 Android 代码?

或者也许我可以使用 adb am start 启动活动并获得返回值?这可能吗?

编辑: 找到了解决方案:

adb shell echo $EXTERNAL_STORAGE

无论其价值如何,使用 $EXTERNAL_STORAGE 变量可能会给您带来误导性的结果。 我这里有一台 HP Slate 平板电脑,其 EXTERNAL_STORAGE 变量设置为 /storage/sdcard0 。 但是,当在 shell 上使用 df(磁盘空闲)命令,甚至使用 mount 命令来显示可用空间或安装时,以下情况变得显而易见:

shell@android:/ $ df
Filesystem             Size   Used   Free   Blksize
/dev                  452.7M  36.0K  452.7M   4096
/mnt/asec             452.7M  0.0 K  452.7M   4096
/mnt/obb              452.7M  0.0 K  452.7M   4096
/system               629.9M  468.5M  161.5M   4096
/data                 5.7 G  2.3 G  3.5 G   4096
/cache                435.9M  16.4M  419.5M   4096
/storage/sdcard0      5.7 G  2.3 G  3.5 G   4096
/mnt/external_sd      29.3G  64.0K  29.3G   32768

所以,外部SD卡实际上是/mnt/external_sd,而不是EXTERNAL_STORAGE返回的值(这是内部存储)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过adb获取sdcard目录 的相关文章

随机推荐

  • 从 mongoose 'toJSON' 支持中删除一个属性

    我正在使用 mongoose 的 toJSON 支持 如下所示 userSchema set toJSON getters true virtuals true minimize false 现在 在猫鼬对象的 toJSON 方法调用返回的
  • 使用 Office.js 在桌面 Excel 上呈现数据,但在 Chrome Office 365 上,它会给出错误“处理请求时出错”。

    我们正在使用办公js在 Excel 上呈现数据的库 有超过2000行效果很好桌面Excel 但当同样API用于Chrome 办公室 365它给出错误消息 有一个错误处理请求 请参阅随附的屏幕截图 随着数据变大 Chrome Office E
  • 如何获取hive中的数据库用户名和密码

    正在编写jdbc程序来连接hive数据库 我希望在连接 url 中提供用户名和密码 我不知道如何使用 hive QL 获取用户名和密码 有人可以帮我吗 Exception in thread main java sql SQLNonTran
  • 如何向 CPBarPlot 条形图添加标签?

    我对 Core Plot 完全陌生 并且有一个可用的条形图 但视觉效果对我来说有点无用 除非我知道每个条形中代表哪个对象 我看到有一个名为 fieldIdentifiers 的方法 但不知道如何实现它 也找不到任何文档 如果这甚至是正确的方
  • 禁用 ActionBar RTL 方向

    Android 4 2 引入了 RTL BiDi 支持 要开始使用它 我只需按照说明进行操作 清单文件中元素的 android supportsRtl 属性并将其设置为 true 但随后我的 ActionBar 徽标也将方向更改为右侧 徽标
  • 未使用 QueryString id 参数

    我有一个非常基本的 ASP Net MVC 项目 我想在我的控制器操作之一上使用 id 参数名称 从我读过的所有内容来看 这应该不是问题 但由于某种原因 使用 id 参数名称无法获取从查询字符串中提取的值 但如果我将其更改为任何其他不同的名
  • 获取第n行文本输出

    我有一个每次生成两行作为输出的脚本 我真的只对第二行感兴趣 此外 我只对第二行一对 之间出现的文本感兴趣 此外 在散列之间还使用另一个分隔符 A 如果我还可以分解以 A 分隔的文本的每个部分 那就太好了 请注意 A 是 SOH 特殊字符 可
  • PowerShell,用另一种文化格式化值

    PowerShell 中有没有一种简单的方法可以在另一个语言环境中格式化数字等 我目前正在编写一些函数来简化我的 SVG 生成和 SVG 使用 作为小数点分隔符 而 PowerShell 遵循我的区域设置 de DE 将浮点数转换为字符串时
  • 检索 Windows 10 电源模式滑块的状态

    是否有任何 API 可以检索 Windows 10 电源模式滑块的状态 我在看Windows System Power名称空间 https learn microsoft com en us uwp api windows system p
  • GitHub Actions 工作流程错误:运行命令超时!即使剧本做得很好

    每次提交到存储库时 我想在远程服务器上部署 Nuxt js 应用程序 这是我的deploy yml name Deployment on push branches master jobs deploy name Deploy runs o
  • 分配多个 JsonProperty?

    我正在尝试创建一个包含来自 Facebook 和 Twitter 的信息的单个数据类 但在我来自 Twitter 的 JSON 回复中我需要id str我从 Facebook 得到id 我需要将这两个放入id 细绳 现在我知道我可以使用 J
  • WooCommerce:如何在价格和促销价格之前添加文本?

    我已成功地让文本显示在价格之前和促销价格之前 但文本被视为价格的一部分 而不是与其分开 Placing ins before content Betty s price color 000 font size 14px 在我的自定义 CSS
  • Flutter 嵌套行 MainAxisAlignment

    我想做这个 但这是我实际得到的 这是我的代码 Row itemTransaction BuildContext context Transaction transaction This is the function that will b
  • 如何配置 android 测试目录?

    Android gradle 构建强制我的 AndroidTests 位于 src androidTests 中 如何将其更改为我选择的另一个目录 这是一些背景 我正在从 eclipse 迁移一个项目 根据构建文档 当我将其添加到我的 gr
  • 重新启动 Vaadin 应用程序时抛出 java.io.NotSerializedException

    当我重新启动 Tomcat 时 出现以下错误 2014 10 01 15 49 47 055 WARN com vaadin event ListenerMethod localhost startStop 2 Error in seria
  • 如何判断一个对象是否是 Mockito 模拟对象?

    是否可以在代码中判断给定对象是否是 Mockito 模拟对象 我想这样做的原因是在使用模拟时返回不同的错误消息 这将用于向其他开发人员建议他们应该使用预先准备的模拟 该模拟已经设置为以有用的方式应答呼叫 而不是自己创建模拟 目前我拥有的最好
  • 《How To Make a Tile-Based Game with Cocos2D 2.X》用cocos2d V3制作本教程

    我有一个小问题 在本教程中如何使用 Cocos2D 2 X 制作基于图块的游戏 http www raywenderlich com 29458 how to make a tile based game with cocos2d 2 x使
  • 当活动处于后台或不在后台时,Firebase 通知不起作用

    我的编码与 firebase 示例代码提供的相同 当 Activity 处于前台状态或打开时 它可以正常工作 但是 当活动关闭或处于后台状态时 它就无法正常工作 问题是这样的 不显示应用程序的应用程序图标 默认情况下以应用程序名称作为通知标
  • 为什么基元的包装类没有 setter?

    包装类 如 Integer Double 等 没有为其内部原始值设置 setter 的原因是什么 我问这个问题是因为这种功能可以简化微积分 并使 Java 语言更加灵活 让我举一些例子 1 我们看下面的例子 Integer x new In
  • 通过adb获取sdcard目录

    我正在制作一个应用程序 它通过 adb 从设备 SD 卡中提取文件 由 Android 应用程序保存 问题是不同的设备 有不同的SD卡目录 i e sdcard SD卡 external sd 首先我发明了以下解决方案 运行 adb she