【问题标题】:DownloadManager addCompletedDownload() method not working, gives SecurityExceptionDownloadManager addCompletedDownload() 方法不起作用,给出 SecurityException
【发布时间】:2016-03-02 07:32:57
【问题描述】:

我正在使用 URL 下载和使用 InputStream 读取数据字节,因此获取的数据我正在使用 FileOutputStream 以 pdf 的形式写入。然后我使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString();

将文件写入下载文件夹。

文件被下载到下载文件夹中,我可以使用 FileManager 访问它,这没有问题。 但该文件不会出现在“下载”应用程序中。 所以,我尝试使用 DownloadManager 对象

mManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);

下载完成后,我正在使用

mManager.addCompletedDownload(fileName, "Hello", true, "application/pdf", "nn",bufferLength,false);

来源

addCompletedDownload method

现在,我的第一个查询,

  1. 对于字符串路径

  2. ,我不太理解我必须提及的内容
  3. 使用这行代码,我得到一个 SecurityException,上面写着 可见性 2 android 的安全异常无效值

非常感谢任何帮助。

【问题讨论】:

  • 如果你想将文件下载到公共的下载目录,使用 DownloadManager.enqueue() 可能更容易

标签: android android-download-manager securityexception


【解决方案1】:

如果您不想在代码中显示下载通知,则应在应用清单文件中为其添加权限:

<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>

【讨论】:

    【解决方案2】:

    当您不提供所需的权限时,通常会出现安全异常。也许这会有所帮助:http://technofaq.org/posts/2014/04/fixing-external-sd-card-write-issue-on-android-kitkat/

    【讨论】:

    • 如果您指的是 android.permission.READ_EXTERNAL_STORAGE 和 android.permission.WRITE_EXTERNAL_STORAGE,这些都已经处理好了,但我仍然看不到任何改进。
    • 最新的安卓版本有一些权限问题,请看这个链接:stackoverflow.com/questions/17360924/…
    • 我希望你已经知道你需要添加这个:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多