2

这里的问题是:我的应用程序会生成一些文件,我想给用户机会在他们之间交换这些文件。

这需要 3 个步骤:

  1. 保存数据:在 Storage 中轻松实现Externalizable 类所需的功能;
  2. 共享数据:使用框架提供的共享方法完成(可能,现在无法检查结果是否正确,因为缺少第 3 步),一旦我了解我需要用作 mimetype “application/octect-溪流”;
  3. 导入下载的数据(由另一个用户共享):这个我无法找到让它工作的方法。从应用程序的存储中加载文件很容易,但是从应用程序的存储中访问文件夹是我无法做到的。

我使用 FileSystemStorage 希望至少能够访问(大部分)每部手机都有的下载文件夹,但显然我无法完成任务

例如,在 Android 上使用 FileSystemStorage,我可以访问

  • /存储/模拟/0
  • /存储/模拟/旧版
  • 文件系统

前两个与应用程序的存储有关。

加入 file:/// 我获得了一个长长的文件夹列表,部分列表包括

  • 媒体
  • 日志
  • SD卡
  • 可拆卸的
  • ...
  • ...

但是当我尝试访问其中一些时,它们似乎都是空的。要么我犯了一些错误,要么应用程序看不到他们的内容。

所以我想知道是否有办法完成这项任务,即可以访问用户下载的文件(可能在下载文件夹中)并导入它们。

4

2 回答 2

1

电话应用程序独立存在于电话中。Android 从字面上为每个应用程序创建了一个单独的 Linux 用户,这样他们就不会互相踩踏并损坏手机。iOS 也有类似的技巧。

因此,应用程序不能只写一个文件来下载,也不能只列出那里的所有文件。这会侵犯用户的隐私。因此,共享文件的本机 API 通常与文件 API 是分开的。我们在CN类中确实有一个共享 API,可让您将图像等共享到任意 OS 应用程序。请参阅isNativeShareSupportedshare

于 2021-05-26T02:51:10.153 回答
1

好的,也许我找到了一个解决方案,可以从 CodenameOne 的扩展名为FileChooser的 Download 文件夹中读取文件。

根据这篇博文,它应该允许在其他人之间访问下载文件夹(至少在 Android 中)。

我将尝试它,当一切准备就绪并经过测试时,编辑此回复以说明它对我的效果。

于 2021-05-26T21:23:49.677 回答