【发布时间】:2017-01-09 09:16:23
【问题描述】:
我正在编写一个小应用程序,该应用程序从设备外部的源(USB、蓝牙、Airdroid 等)读取必须定期写入设备存储的文件。根据我所读到的内容,没有类似的可以写入内部存储。我想管理内部存储中的文件以保护访问隐私。
我的第一个解决方案是让用户将文件写入外部存储,然后点击按钮将它们传输到内部存储的活动。如果这在 n 分钟内没有发生,则外部存储上的文件将被销毁。但是,我后来发现getExternalStorageDirectory 毫无用处,因为设备在内部存储上模拟外部存储,Android 不知道是否以及如何做到这一点。
但我想知道是否没有某种内置活动可以让用户直接从内部存储上传或下载文件,但不能像使用内部存储一样免费访问内部存储的整个文件结构.
作为最后的手段,也许我的应用程序可以通过 TCP 连接接收文件并将它们写入内部存储本身。它很乱,但试图找到一张 SD 卡也是如此。见问题Find an external SD card location。
新: 本练习的目的是在 SD 卡上的一个目录中查找所有 .csv 文件,让用户选择一个,处理它,并将输出文件写入 SD 卡.用户将输入一个“权重”值,该值将用于处理文件的计算。
但是,由于 Android 在提供真正的外部存储(即 SD 卡)的位置方面非常不可靠,所以我想尝试将文件存储在内部存储中,Android 似乎更诚实和可靠地知道该位置的位置存储。
【问题讨论】:
-
您可以将文件直接存储在内部存储中。 developer.android.com/training/basics/data-storage/files.html
-
@PrerakSola 但是怎么做?在问这个问题之前,我已经阅读了您链接到的文档,并且它清楚地说明了内部存储,“保存在此处的文件只能由您的应用程序访问”。所以这个问题的重点几乎是用户(不是我的应用程序,也无权访问内部存储)如何将文件放入内部存储。
-
是你的问题,“如何写入用户可以访问的内部存储而不是
data/data/package_name/这样做不会允许其他应用访问它? -
upload to内部存储模糊。您的意思是,upload from内部存储可能来自网络或write to内部存储来自网络或外部资源? -
@ZekeDran,“上传到”对我来说不是那么模糊。我认为它清楚地表明,对于某些母语至少是英语的人来说,“内部存储”是目的地,即我想把文件放在那里,而不是读取它们或从那里取出它们。
标签: android file-transfer android-file