转:android DownloadManager: java.lang.SecurityException: Invalid value for visibility: 2
1、问题描述
今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误:
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:
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:)
at android.app.ActivityThread.access$(ActivityThread.java:)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:)
at android.os.Handler.dispatchMessage(Handler.java:)
at android.os.Looper.loop(Looper.java:)
at android.app.ActivityThread.main(ActivityThread.java:)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:)
Caused by: java.lang.SecurityException: Invalid value for visibility:
at android.os.Parcel.readException(Parcel.java:)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:)
at android.content.ContentResolver.insert(ContentResolver.java:)
at android.app.DownloadManager.enqueue(DownloadManager.java:)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.initDownManager(QingtingFmDownloadService2.java:)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.onStartCommand(QingtingFmDownloadService2.java:)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:)
... more
java.lang.SecurityException: Invalid value for visibility:
at android.os.Parcel.readException(Parcel.java:)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:)
at android.content.ContentResolver.insert(ContentResolver.java:)
at android.app.DownloadManager.enqueue(DownloadManager.java:)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.initDownManager(QingtingFmDownloadService2.java:)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.onStartCommand(QingtingFmDownloadService2.java:)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:)
at android.app.ActivityThread.access$(ActivityThread.java:)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:)
at android.os.Handler.dispatchMessage(Handler.java:)
at android.os.Looper.loop(Looper.java:)
at android.app.ActivityThread.main(ActivityThread.java:)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:)
其中相关的部分代码如下:
//设置下载地址
DownloadManager.Request downRequest = new DownloadManager.Request(Uri.parse(downloadUrl));
// 设置允许使用的网络类型 (| DownloadManager.Request.NETWORK_MOBILE)
downRequest.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
// 下载时,不显示通知栏
downRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
// 显示下载界面
downRequest.setVisibleInDownloadsUi(true);
// 保存的文件名
String fileName = downloadInfo.getProgramTitle() + ".m4a";
// 设置下载路径和文件名
downRequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC, fileName);
//设置文件类型
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
String mimeString = mimeTypeMap.getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(downloadUrl));
downRequest.setMimeType(mimeString);
// 设置为可被媒体扫描器找到
downRequest.allowScanningByMediaScanner();
// 将下载请求放入队列
final long downloadId = manager.enqueue(downRequest);
2、解决方法
原来其中的一段代码是需要相应的权限 android.permission.DOWNLOAD_WITHOUT_NOTIFICATION
// 下载时,不显示通知栏
downRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
因此在AndroidManifest.xml文件中加入上面所需要的权限即可。
<!--DownloadManager下载时不显示Notification-->
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
本文转自:https://blog.csdn.net/ouyang_peng/article/details/52047149
转:android DownloadManager: java.lang.SecurityException: Invalid value for visibility: 2的更多相关文章
- 我的Android进阶之旅------>解决DownloadManager报错java.lang.SecurityException: Invalid value for visibility: 2
1.问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start s ...
- 执行打的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 ...
- Intellij打包jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attrib
下面是使用Intellij 打包jar文件的步骤,之后会有运行jar文件时遇到的错误. 打包完成. ================================================== ...
- spark提交任务报错: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
spark提交任务报错: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes ...
- 解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 当项目依赖其他jar ...
- Ubuntu环境下java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
一.问题描述 Ubuntu环境中,将maven项目打包成jar包传到服务器中后运行以下指令: $ java -cp my.jar com.myproject.Main 遇到报错: java.lang. ...
- 封装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 ...
- 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 ...
- 【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 ...
随机推荐
- django 配置文件settings.py 设置模板
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'dj ...
- Yum三方仓库——RPMForge
参考:How to Enable RPMForge Repository in RHEL/CentOS 7.x/6.x/5.x RPMForge / RepoForge这两个项目已经死亡,不应该使用 ...
- 分享一个自制的USB转HART模块
HART协议是一种用于现场智能仪表和控制室设备之间的通讯协议.使用USB转HART模块可以很方便的对HART总线上的数据进行监控,并且可以远程控制.操作和校准HART设备.设计的模块主要采用的是USB ...
- java 从上至下打印二叉树
从上往下打印二叉树题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行一个整数n(1<=n<=1000, ...
- java UDP 通信:服务端与客服端
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import j ...
- python_反射:应用
class User(object): def denglu(self): print('欢迎来到登录页面!') def zhuce(self): print('欢迎来到注册页面!') def you ...
- Java多线程下载初试
一.服务端/客户端代码的实现 服务端配置config @ConfigurationProperties("storage") public class StoragePropert ...
- SQL:自增主键的获取@@IDENTITY 和 SCOPE_IDENTITY 的区别
@@IDENTITY 返回当前会话所有作用域的最后一个ID SCOPE_IDENTITY() 返回当前作用域的最后一个ID 返回上面语句执行后产生的自增主键,这个是目前最可靠的方式: insert i ...
- learning scala Case Classses
package com.aura.scala.day01 object caseClasses { def main(args: Array[String]): Unit = { // 注意在实例化案 ...
- python 元组 【基本使用功能】
元组是括号,列表是方括号,都可以通用的有好多,比如判断一个元素是否存在可以直接用 in ,复制或者合并可以直接用乘或者加. 下面是在菜鸟教程截得的: 示例: #!/usr/bin/python # - ...