【问题标题】:cn1 - download file to phone's download directorycn1 - 下载文件到手机的下载目录
【发布时间】:2016-05-28 10:34:34
【问题描述】:

我正在尝试允许应用程序将文件下载到公共“下载”目录,以便以通用方式在设备上可用。我成功地将模拟器中的文件下载到了我电脑上的 .cn1 目录中,但是我找不到直接的方法将文件放到设备上的公共目录中。我真的希望FileSystemStorage 类中有一个方法可以实现这一点,但它们似乎都不是我想要的。

所以我尝试编写一个简单的原生桥来获取公共目录的路径,从 Android 开始。我有一个非常简单的类,如下所示:

public class DownloadDirectoryImpl {

    public static String getDownloadDirectory(){
        return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
    }

    public boolean isSupported(){
        return true;
    }
}

应用程序编译正常,但是当我单击文件下载它时,我看到同一行在 logcat 中重复了几千次:

W/System.err:     at net.gesher.downloadDirectory.NativeDownloadDirectoryImpl.getDeviceDownloadDirectory(NativeDownloadDirectoryImpl.java:20)

但它没有说明错误是什么。

所以,我正在寻求建议 a) 改进我的 android 代码以使其正常工作,或者 b) 获取此目录路径的 cn1 正确方法。

非常感谢!

【问题讨论】:

  • 这是较长堆栈跟踪的一部分。请提供完整堆栈,您可以在控制台区域内滚动连接设备时在 DDMS 工具中看到完整堆栈。
  • 我能够向上滚动一次,在它之前没有任何相关或相关的内容。在与上面类似的几千行的末尾,有一个堆栈跟踪,它跟踪我的代码,然后是 cn1 代码,返回 java.lang,但它没有说明异常是什么。

标签: android codenameone download


【解决方案1】:

如果您有很多行在...并且都引用相同的方法,那么您有一个导致堆栈溢出的递归调用。由于您提到的唯一方法是您的本机方法,我假设您在本机实现中调用了您自己的方法并进入了递归循环。

【讨论】:

  • 我理顺了代码-我没有正确命名各种本机和相应的cn1文件-它突然起作用了!
  • 现在我有另一个相关的问题,但也许它应该放在自己的问题中。使用Util.downloadUrlToFile() 我尝试将文件下载到下载目录。该方法返回 true,但在我设备的下载目录中没有出现任何内容。 Logcat 中没有任何内容。
  • 抱歉,没关系,我在我的设备上找到了该文件。在 Android 中,图像文件无法通过“下载”应用获得,只能在图库中获得。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
  • 2012-11-02
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
相关资源
最近更新 更多