gpt4 book ai didi

大于2GB的SD卡的Android低级读取

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:02:24 25 4
gpt4 key购买 nike

我的 Android 应用程序试图通过访问实际设备(在我的例子中是/dev/block/vold/179:1)来读取 SD 卡的物理扇区。 (当然,这是在有根电话上)

我能够将设备作为 FileInputStream 打开,并从中读取数据。但是,我似乎无法读取超过 2GB 标记(我的存储卡是 16GB)。

这是因为 Android 不支持大于 2GB 的文件吗?如果是这样,为什么像 position()skip() 这样的函数接受 long 参数?

有没有人对如何从超过 2GB 的设备读取内容有建议?

最佳答案

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

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

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

当然这种方法有点没有记录:) 但是你可以在 android 3 之后使用 java 和之前的这个技巧

man _llseek 获取更多信息

关于大于2GB的SD卡的Android低级读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9577098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com