问题标签 [sd-card]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android - 存储从网络下载的图像
我有一个关于我是否应该(以及如何)存储从网络加载的图像的问题。假设我正在从我的 Android 应用程序调用 Web 服务。在此 Web 服务中,我获得了 Web 上图像的 URL。我下载并在 ListView 中列表项的左侧显示此图像。我的问题是,我应该使用什么方法来存储图像?我是不是该:
- 将其保存到 SDCard,在创建 ListView 时检查它是否存在(在后续请求中)并在必要时重新下载(偶尔更新图像,以防它发生变化)。
- 使用 Context.getCacheDir() 将其存储在缓存中,但可能会被迫更频繁地重新下载它,因为我不能依赖保留在缓存中的图像。
- 始终下载它并且永远不要存储图像。
图像文件本身相当小,但我希望一些用户可以下载/存储数十个这样的小图像。哪种方法效果最好,和/或首选方法是什么?
作为一个附带问题,我应该首先在我的 ListView 中加载所有图像(并可能锁定 UI 一段时间)还是异步加载它们但同时显示一个占位符图形(这可能有点“丑陋”)?这里的标准是什么?
android - 如何在 android 中监听 SD 卡安装?
我有一个使用 SD 卡的程序,所以如果可能的话,我想通过注册一个监听器来通知卡的状态是否发生变化。我知道 Environment 类及其方法,但我真的不想不断地轮询状态。我宁愿在运行时不要强制关闭我的程序,因为有人将 sd 卡安装到他们的计算机上。
embedded - 在 SPI 问题中初始化 SD 卡
我查看了 Stack Overflow question Initialization of a microSD card using an SPI interface,但没有看到任何与我的问题相匹配的答案(也就是说,我还没有尝试过的事情)。
我有一个类似的问题,我试图通过微控制器的 SPI 接口(特别是HC908)访问 SD 卡。我已经尝试遵循物理层简化规范 v2.00 中的流程图,它似乎在 Transcend 1 GB 和 2 GB 以及 AE&C 1 GB 卡上正确初始化。但是我在相机上使用的旧卡中的其他三张随机卡上遇到了问题。
我的代码都是 HC908 汇编程序。我确定了 SPI 时钟线的范围,在初始化期间它的运行频率约为 350 kHz(HC908 在我的 100 - 400 kHz 窗口内的低 MCU 时钟速度下提供的唯一速度倍增器)。
以下是未完成我的初始化例程的三张卡的结果(全部连续完成,无需更改任何代码或时序参数):
非法命令标志卡住了吗?我应该在 CMD8 之后做些什么来清除那个标志吗?
为什么OCR全是F?似乎一点都不合适。另外,为什么 ACMD41 和 CMD1 响应非法命令?CMD1 失败是因为卡在 CMD55 之后等待有效的 ACMD,即使有非法命令响应?
那张卡到底有什么问题?
有时它是同步的,有时则不是。(上述模式是可重复的。)我已经确定了这个范围,我没有看到 MOSI/MISO 传输之间有任何流氓时钟周期。
.net - 如何从 SD 卡中读取原始字节?
在 Windows PC 上,有没有办法从通过 USB 读卡器连接的 SD 卡读取原始字节?SD卡是从完全不使用文件系统的嵌入式系统写入的,所以我不能使用标准文件访问例程。这类似于 unix dd实用程序所做的,但我需要将其集成到 .NET 应用程序中。
android - 在 Android 上将 .txt 文件名存储在数组中
我只想将.txt
来自特定目录(比如说:)的文件名存储/sdcard/docs/
到一个String
数组中。
示例:其中 /sdcard/docs/
有 5 个文件:foo.txt
、bar.jpg
、foofoo.txt
和. 我想获取包含内容的数组:loool.png
foobar.txt
"foo.txt", "foofoo.txt", "foobar.txt"
我怎么能做到?
android - 在 Android 中以正确的大小解码位图
我使用BitmapFactory.decodeFile
. 有时位图比应用程序需要或堆允许的要大,所以我使用BitmapFactory.Options.inSampleSize
请求二次采样(较小)位图。
问题是平台没有强制执行 inSampleSize 的确切值,有时我会得到一个位图,要么太小,要么对于可用内存来说仍然太大。
从http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize:
注意:解码器将尝试满足此请求,但生成的位图可能具有与所请求的尺寸不同的尺寸。此外,2 的幂通常更快/更容易让解码器兑现。
我应该如何解码 SD 卡中的位图以获得我需要的确切大小的位图,同时消耗尽可能少的内存来解码它?
编辑:
当前源代码:
java - SD卡上目录中的文件数量是否有限制?
我有一个为 Android 设备编写的项目。它每天都会生成大量文件。这些都是文本文件和图像。该应用程序使用数据库来引用这些文件。
该应用程序应该在稍微使用后(可能几天后)清除这些文件,但这个过程可能会或可能不会起作用。这不是这个问题的主题。
由于历史事故,文件的组织有些幼稚:所有内容都在同一个目录中;一个.hidden
包含零字节.nomedia
文件的目录,以防止 MediaScanner 对其进行索引。
今天,我看到一个错误报告:
关于 sdcard,我看到它有足够的存储空间,但计数
删除一些文件似乎允许今天的文件创建继续进行。
遗憾的是,我没有尝试touch
使用新文件来尝试在命令行上重现错误;我还删除了数百个文件,而不是少数。
但是,我的问题是:
- 目录中的文件大小或文件数量是否有硬性限制?
- 我什至在正确的轨道上吗?
Nota Bene:SD 卡是原样的 - 即我没有格式化它,所以我猜它是 FAT-* 格式。
FAT-32 格式有 2GB 文件大小的硬性限制(远高于我正在处理的文件大小)和根目录中的文件数量限制。我绝对不会在根目录中写入文件。
android - (重新)在 android 模拟器上安装 SD 卡
在模拟器上,我可以从设置中卸载 SD 卡。
然后我可以将它安装在我的操作系统上,然后正常卸载它。
我无法弄清楚如何在模拟器上重新安装它(无需重新启动它)。
提示:
- 该
adb
命令remount
是无关的:它是关于/system
- 该
emulator
命令无关:它只是关于启动模拟器 - 将 SD 卡安装在两个地方当然会搞砸一切(我试过)
更多的:
mount
输出以下内容:/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
卸载后尝试从 shell 再次安装,使用与上述相同的选项,会出现段错误
- 不知道为什么会出现双斜线
block//vold
,我想这只是一个错字
android - 在 Android 上将游戏资源下载到 SD 卡
我正在开发一款Android 游戏,它必须将一些资产下载到SD 卡中,以使应用程序的大小尽可能小。我正在考虑使用未压缩的 zip文件来捆绑所有资产。
客户的要求是尽可能保护这些资产。作为 apk 的一部分被认为是足够的保护,但如果我这样做,apk 的大小将是巨大的。如果我只是在 SD 卡中放了一个压缩包,那么任何人都可以解压缩它并探索它的内容。
有没有一种简单的方法可以做到这一点而无需反驳可怕的 DRM?
显然,如果有人真的想查看 Android 游戏的资源,他们可以。我只是在寻找一个简单的解决方案来避免使这变得非常容易。
embedded - 使用 SPI 初始化 SD 卡
我看到了很多关于 MMC/SD 卡的信息,我试图创建一个库来阅读这个(修改Procyon AVRlib)。
但是我这里有一些问题。我没有更改原始代码并在这里尝试。我的问题是关于 SD 卡的初始化。我这里有两个,一个 256 MB,另一个 1 GB。
我按以下顺序发送初始化命令:CMD0、CMD55、ACMD41 和 CMD1。
但是 256 MB SD 卡只为每个命令返回一个 0x01 响应。我多次发送 CMD1,256 MB SD 卡总是只返回 0x01,从不返回 0x00。
1 GB SD 更疯狂... CMD0 返回 0x01。很好,但是 CMD55 命令以 0x05 响应。有时它会以 0xC1 响应,有时也会在下一次交互中以 0xF0 响应 0x5F...
网上有资料和例子,但有点混乱。在我的项目中,我必须使用 1 GB 卡,并且我正在尝试使用带有 SD 适配器的 microSD 卡(我认为这不是问题)。
我该如何解决这个问题?
PS:我的问题类似于 Stack Overflow question Initializing SD card in SPI issues 中的问题,但解决方案并没有解决我的问题。1 GB SD 卡永远只返回 0x01... :cry: