Android底层读取大于2GB的SD卡

2024-04-13

我的 Android 应用程序尝试通过访问实际设备(在我的例子中为 /dev/block/vold/179:1)来读取 SD 卡的物理扇区。 (当然这是在有root权限的手机上)

我可以将设备打开为FileInputStream,并从中读取数据。但是,我似乎无法读取超过 2GB 的内容(我的存储卡是 16GB)。

这是因为 Android 不支持大于 2GB 的文件吗?如果是这样的话,为什么像这样的函数position() and skip() accept long论点??

有人对如何读取超过 2GB 的设备有建议吗?


尝试使用本机(jni)库创建并调用 __llseek()

int __llseek(unsigned int fd, unsigned long offset_high,
             unsigned long offset_low, loff_t *result,
             unsigned int whence);

我认为你应该在代码中添加原型,因为我怀疑是否有直接包含 (sys/linux-unistd.h)

当然这种方法有点无证:)但是你可以在android 3之后使用java,在之前使用这个技巧

man _llseek欲了解更多信息

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

Android底层读取大于2GB的SD卡 的相关文章

随机推荐

  • 如何使用Android 4.4中出现的ImageReader?

    Android 4 4 Kit Kat 推出了图像读取器 http developer android com reference android media ImageReader html用于访问 Surface 中的图像的类 对于实时
  • 如何在 Rails 应用程序的数据库/模型中存储营业时间?

    我正在创建一个 Rails 应用程序 它将存储企业的营业时间和营业时间 最初 我想到简单地使用文本数据类型并使其成为自由格式 Monday to Friday 9am to 5pm Saturday 11am to 4pm Closed S
  • 无法在 urllib.request 中使用 https 代理

    我使用 python 创建了一个脚本urllib request申请https其中的代理 我尝试过如下操作 但遇到了不同类型的问题 如urllib error URLError
  • 如何为独立的 Illuminate IoC 容器创建 Illuminate/Support/Facade/App Facade

    在我的独立 没有 Laravel 项目中 我想使用 Illuminate IoC 容器 我还想通过访问应用程序容器App外观由提供illuminate support成分 我安装了这两个组件 v5 0 28 这是我的 简化的 代码 func
  • 从扩展类调用时,groovy 中的闭包不能使用私有字段

    我有一个 groovy 课程 其中有一个私有字段和一个方法 在该方法中 我调用 http 服务 并在其中传递一个闭包来处理响应 像这样的事情 class WebUiRestRequestSender private String jSess
  • 删除“if”语句的大括号是否有任何例外?

    我是一名计算机科学专业的学生 前段时间我们的教授向我们解释说 在 C 语言中 当只有一个语句时 我们可以删除大括号 例如 if a do b 但我们不能这样做 if a do b do c 因为那会做不止一个声明 但它也告诉我们 删除大括号
  • 在汇编器中导出优化的 strlen?

    以下代码能够确定 DWORD 的一个或多个字节是否设置为 0 mov eax value mov edx 07EFEFEFFh add edx eax xor eax 0FFFFFFFFh xor eax edx and eax 08101
  • numpy 数组上的余数函数 (%) 运行时间远远长于手动余数计算

    在过去的几天里 我一直致力于改进 python 函数的运行时 该函数需要多次使用余数函数 等 我的主要测试用例是超过 80 000 个元素的 numpy 数组 单调递增 迭代次数为 10000 次 尽管我也尝试过各种其他大小 最终我发现余数
  • 如何在python中终止进程之前执行代码?

    这个问题涉及 python 中的多处理 我想在终止进程时执行一些代码 更具体地说 是在终止进程之前执行一些代码 我正在寻找一种解决方案atexit register对于Python程序 我有一个方法工作者 看起来 def 工人 而真实 打印
  • 在自己的目录中安装 WordPress 但永久链接失败

    我在 EC2 上安装了 WordPress 位于 var www html wordpress 我按照 WordPress 指南将 index php 和 htaccess 复制到根目录 即 var www html 并修改了index p
  • 在 R: lme4::glmer 中指定逻辑混合模型中重复测量的随机效应

    我正在寻找反馈 以确定如何正确指定随机效应来解释重复测量设计中的相关性 但具有多个相关性级别 包括纵向数据 对于每个预测变量组合 结果是二元的 所以我将拟合逻辑混合模型 我本来打算使用glmer 函数从lme4包裹 如果您想知道这些数据是如
  • SQL if语句在where子句中用于搜索数据库

    我正在创建一个存储过程来返回搜索结果 其中某些参数是可选的 我想要一个 if 语句 where条款但无法使其发挥作用 这where子句应仅按非空参数进行过滤 这是 sp ALTER PROCEDURE spVillaGet Add the
  • 如何淡入隐藏的 JavaFX 标签

    如何在隐藏项目上添加精美的 JavaFX 事件 例如 当我显示隐藏标签时 我想使用 淡入淡出 效果 由单击按钮触发 调用下面的方法时如何添加效果 FXML private void handleButtonAction ActionEven
  • 使用带有 unicode 的 xhtml2pdf 时遇到问题

    我一直在尝试转换希伯来语 html 文件但没有成功 无论我尝试何种编码 希伯来语字符在输出 PDF 中都会显示为黑色矩形 我尝试了 pisa 发行版中包含的一些 unicode 测试文件 pisa 3 0 33 test test unic
  • ASP.Net Identity 2 通过短信重置密码

    我希望在重置密码时向用户发送短信 我已经具备发送短信的功能 我只需要有关如何使用 Identity 2 0 进行设置的指南 我似乎无法在网上找到任何有用的信息 参考代码本身也没有正确注释 我想生成一个安全代码 将其发送给用户 然后他必须将其
  • sp改变时函数导入

    我正在使用实体框架的函数导入功能从 net 4 0 代码调用存储过程 但是 每次更改存储过程结果集时 我都必须删除函数导入并再次添加 有什么方法可以通过更改实体模型中的代码来合并更改 而不必再次删除并添加函数导入 谢谢 使用函数导入时 一些
  • Oracle 主键:NUMBER 与 NUMBER(7,0)

    指定 PK 的精度有什么好处吗 鉴于记录可能永远不会超过几千条 7 0 是否足够 不指定精度有什么危险吗 NUMBER 7 0 只是限制了值域 它们的内部表示没有不同 CREATE TABLE t pk col1 NUMBER 7 0 NO
  • 访问数据库表单 ActiveX 控件错误

    我正在使用一个带有日期选择器控件的表单 当打开表单并单击日期选择器控件 MSCOMCT2 OCX 时 我收到以下无用的错误 您输入的表达式 Change 作为偶数属性设置 产生以下错误 加载 ActiveX 时出错 控制您的一份表格或报告
  • save_and_open_page 不适用于水豚 2.0?

    我刚刚将水豚更新到 2 0 并且所有 save and open page 调用都返回一个没有样式的 html 页面 它在页面顶部正确地提供了样式表链接 当我恢复到水豚 1 3 时 样式再次起作用 有人知道如何解决这个问题 和 或问题是什么
  • Android底层读取大于2GB的SD卡

    我的 Android 应用程序尝试通过访问实际设备 在我的例子中为 dev block vold 179 1 来读取 SD 卡的物理扇区 当然这是在有root权限的手机上 我可以将设备打开为FileInputStream 并从中读取数据 但