1、问题描述

今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误:

  1. java.lang.RuntimeException: Unable to start service com.xtc.fm.qingting.services.QingtingFmDownloadService2@1b97b060 with Intent { act=com.xtc.fm.qingting.FM_DOWNLOAD_SERVICE_START pkg=com.xtc.fm.qingting cmp=com.xtc.fm.qingting/.services.QingtingFmDownloadService2 (has extras) }: java.lang.SecurityException: Invalid value for visibility:
  2. at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:)
  3. at android.app.ActivityThread.access$(ActivityThread.java:)
  4. at android.app.ActivityThread$H.handleMessage(ActivityThread.java:)
  5. at android.os.Handler.dispatchMessage(Handler.java:)
  6. at android.os.Looper.loop(Looper.java:)
  7. at android.app.ActivityThread.main(ActivityThread.java:)
  8. at java.lang.reflect.Method.invoke(Native Method)
  9. at java.lang.reflect.Method.invoke(Method.java:)
  10. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:)
  11. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:)
  12. Caused by: java.lang.SecurityException: Invalid value for visibility:
  13. at android.os.Parcel.readException(Parcel.java:)
  14. at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
  15. at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
  16. at android.content.ContentProviderProxy.insert(ContentProviderNative.java:)
  17. at android.content.ContentResolver.insert(ContentResolver.java:)
  18. at android.app.DownloadManager.enqueue(DownloadManager.java:)
  19. at com.xtc.fm.qingting.services.QingtingFmDownloadService2.initDownManager(QingtingFmDownloadService2.java:)
  20. at com.xtc.fm.qingting.services.QingtingFmDownloadService2.onStartCommand(QingtingFmDownloadService2.java:)
  21. at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:)
  22. ... more
  23. java.lang.SecurityException: Invalid value for visibility:
  24. at android.os.Parcel.readException(Parcel.java:)
  25. at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
  26. at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
  27. at android.content.ContentProviderProxy.insert(ContentProviderNative.java:)
  28. at android.content.ContentResolver.insert(ContentResolver.java:)
  29. at android.app.DownloadManager.enqueue(DownloadManager.java:)
  30. at com.xtc.fm.qingting.services.QingtingFmDownloadService2.initDownManager(QingtingFmDownloadService2.java:)
  31. at com.xtc.fm.qingting.services.QingtingFmDownloadService2.onStartCommand(QingtingFmDownloadService2.java:)
  32. at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:)
  33. at android.app.ActivityThread.access$(ActivityThread.java:)
  34. at android.app.ActivityThread$H.handleMessage(ActivityThread.java:)
  35. at android.os.Handler.dispatchMessage(Handler.java:)
  36. at android.os.Looper.loop(Looper.java:)
  37. at android.app.ActivityThread.main(ActivityThread.java:)
  38. at java.lang.reflect.Method.invoke(Native Method)
  39. at java.lang.reflect.Method.invoke(Method.java:)
  40. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:)
  41. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:)

其中相关的部分代码如下:

  1. //设置下载地址
  2. DownloadManager.Request downRequest = new DownloadManager.Request(Uri.parse(downloadUrl));
  3. // 设置允许使用的网络类型 (| DownloadManager.Request.NETWORK_MOBILE)
  4. downRequest.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
  5. // 下载时,不显示通知栏
  6. downRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
  7. // 显示下载界面
  8. downRequest.setVisibleInDownloadsUi(true);
  9. // 保存的文件名
  10. String fileName = downloadInfo.getProgramTitle() + ".m4a";
  11. // 设置下载路径和文件名
  12. downRequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC, fileName);
  13. //设置文件类型
  14. MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
  15. String mimeString = mimeTypeMap.getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(downloadUrl));
  16. downRequest.setMimeType(mimeString);
  17. // 设置为可被媒体扫描器找到
  18. downRequest.allowScanningByMediaScanner();
  19. // 将下载请求放入队列
  20. final long downloadId = manager.enqueue(downRequest);

2、解决方法

原来其中的一段代码是需要相应的权限 android.permission.DOWNLOAD_WITHOUT_NOTIFICATION

  1. // 下载时,不显示通知栏
  2. downRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);

因此在AndroidManifest.xml文件中加入上面所需要的权限即可。

  1. <!--DownloadManager下载时不显示Notification-->
  2. <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
  1. 本文转自:https://blog.csdn.net/ouyang_peng/article/details/52047149

转:android DownloadManager: java.lang.SecurityException: Invalid value for visibility: 2的更多相关文章

  1. 我的Android进阶之旅------>解决DownloadManager报错java.lang.SecurityException: Invalid value for visibility: 2

    1.问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start s ...

  2. 执行打的maven jar包时出现“Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes”

    Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for ...

  3. Intellij打包jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attrib

    下面是使用Intellij 打包jar文件的步骤,之后会有运行jar文件时遇到的错误. 打包完成. ================================================== ...

  4. spark提交任务报错: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

    spark提交任务报错: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes ...

  5. 解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

    解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 当项目依赖其他jar ...

  6. Ubuntu环境下java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

    一.问题描述 Ubuntu环境中,将maven项目打包成jar包传到服务器中后运行以下指令: $ java -cp my.jar com.myproject.Main 遇到报错: java.lang. ...

  7. 封装jar问题java.lang.SecurityException: Invalid signature file digest for Manifest main attributes以及maven依赖重提解决

    1.jar包封装完成后,其他项目引用jar,启动时报错java.lang.SecurityException: Invalid signature file digest for Manifest m ...

  8. idea的jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attribute

    感谢大佬:https://blog.csdn.net/mingyuli/article/details/84674483 命令行运行jar出现问题: 1.找不到主类.打开jar文件包,在MANIFES ...

  9. 【Android】java.lang.SecurityException: getDeviceId: Neither user 10065 nor current process has android.permission.READ_PHONE_STATE

    RT, 异常信息如下: java.lang.SecurityException: getDeviceId: Neither user 10065 nor current process has and ...

随机推荐

  1. RestFramework之认证组件

    一.认证组件的介绍 对于认证,我们一般有三种方式,即cookie, session,token, cookie,是将信息存放在客户端(浏览器上),信息不安全: session,把信息放在服务器数据库中 ...

  2. Vue框架之组件与过滤器的使用

    一.组件的使用 局部组件的使用 ​ 打油诗: 1.声子 2.挂子 3.用 var App = { tempalte:` <div class='app'></div>` }; ...

  3. CentOS 7的Linux系统优化加固

    1.关闭selinux 2.关闭防火墙 3.关闭NetworkManager 4.为系统运维管理员创建普通用户,并配置sudo(vi  sudo) 5.清空泄漏系统版本信息的文件 6.基础优化sshd ...

  4. 20.Vue中获取DOM元素和组件

    1.获取DOM元素和组件:this.$refs

  5. Eclipse安装zookeeper监控插件

    1.在 Eclipse 菜单打开Help -> Install New Software…2.添加 url http://www.massedynamic.org/eclipse/updates ...

  6. linux网络编程之socket编程(六)

    经过一个国庆长假,又有一段时间没有写博文了,今天继续对linux网络编程进行学习,如今的北京又全面进入雾霾天气了,让我突然想到了一句名句:“真爱生活,珍惜生命”,好了,言归正传. 回顾一下我们之间实现 ...

  7. MySQL远程连接不上的解决方法

    这篇文章主要为大家详细介绍了MySQL远程连接不上的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   之前遇到过MySQL本地可以连接但是远程连不上的问题,没有记录,今天在云上新申请的服 ...

  8. require sqlite3时报The specified module could not be found.错误

    http://dependencywalker.com/ 在这个站点下载对应平台的Dependency Walker,打开你自己编译好的.node文件(sqlite3\lib\binding\node ...

  9. [CSS] The :empty Pseudo Selector Gotchas

    The :empty pseudo selector selects empty elements. We can use this to display useful messages instea ...

  10. CSPS2019游(tuifei)记

    %%%脸哥没脸%%% Day0,日常考前紧张,做不下题去.听各大主任送祝福(从里红(wa)到外) 然后就出发了,大巴上和云力一起坐,吃了好多东西.中午因不满火车站的不合理收费,选择了面包+火腿 下午在 ...