我的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: 2
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2911)
at android.app.ActivityThread.access$2100(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1401)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
Caused by: java.lang.SecurityException: Invalid value for visibility: 2
at android.os.Parcel.readException(Parcel.java:1592)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
at android.content.ContentResolver.insert(ContentResolver.java:1207)
at android.app.DownloadManager.enqueue(DownloadManager.java:946)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.initDownManager(QingtingFmDownloadService2.java:195)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.onStartCommand(QingtingFmDownloadService2.java:120)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2894)
... 9 more
java.lang.SecurityException: Invalid value for visibility: 2
at android.os.Parcel.readException(Parcel.java:1592)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
at android.content.ContentResolver.insert(ContentResolver.java:1207)
at android.app.DownloadManager.enqueue(DownloadManager.java:946)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.initDownManager(QingtingFmDownloadService2.java:195)
at com.xtc.fm.qingting.services.QingtingFmDownloadService2.onStartCommand(QingtingFmDownloadService2.java:120)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2894)
at android.app.ActivityThread.access$2100(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1401)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
其中相关的部分代码如下:
//设置下载地址
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" />
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng
我的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 ...
- 解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 学习了:https://blog.csdn. ...
- 解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 当项目依赖其他jar ...
- 我的Android进阶之旅------>解决Jackson等第三方转换Json的开发包在开启混淆后转换的实体类数据都是null的bug
1.错误描述 今天测试人员提了一个bug,说使用我们的app出现了闪退的bug,后来通过debug断点调试,发现我们的app转换服务器发送过来的json数据后,都是为null.而之前已经提测快一个月的 ...
- 我的Android进阶之旅------>解决Your project contains error(s),please fix them
在使用eclipse写好Android的代码,代码没有报错.然后想在AVD中运行测试时,弹出错误框,提示信息为: "Your project contains error(s),pleas ...
- Android Studio 首次安装报错 Java.lang.RuntimeException:java.lang.NullPointerException...错
下次安装报:Java.lang.RuntimeException: java.lang.NullPointerException......错 只需在文件..\Android Studio\bin\i ...
- 我的Android进阶之旅------>解决错误:You need to use a Theme.AppCompat theme (or descendant) with this activity.
#1.错误描述 今天,想实现Activity不显示标题栏的效果,在项目的AndroidManifest.xml文件,对相应的Activity添加属性 android:theme="@andr ...
- 我的Android进阶之旅------>解决Android Studio编译后安装apk报错:The APK file does not exist on disk
1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...
- 我的Android进阶之旅------>解决AES加密报错:java.security.InvalidKeyException: Unsupported key size: 18 bytes
1.错误描述 今天使用AES进行加密时候,报错如下所示: 04-21 11:08:18.087 27501-27501/com.xtc.watch E/AESUtil.decryptAES:55: j ...
随机推荐
- 使用7za压缩zip包的命令,当中屏蔽部分文件夹内容
7za.exe a -r "D:\paages\prduct\produtConfig.zip" "E:/tm\packaes\poduct" -xr!doc ...
- (译)Getting Started——1.3.4 Writing a Custom Class(编写自定义的类)
在开发IOS应用中,当你编写自定义的类时,你会发现很多的特殊场合.当你需要把自定义的行为和数据包装在一起时,自定义的类非常有用.在自定义的类中,你可以定义自己的存储.处理和显示数据的方法. 例如,I ...
- linux重命名session和window
重命名 window title 最近想要给screen session中的每一个 窗口命名一个标识名字,而不是默认的 $ bash 相关命令: ctrl+z(我的screen配置的+z,默认是+a) ...
- hdu6070 Dirt Ratio 二分+线段树
/** 题目:hdu6070 Dirt Ratio 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意:给定n个数,求1.0*x/y最小是多少.x ...
- android camera之nv21旋转
这周做的一个android的camera开发,需要获取到视频帧数据,并且需要是nv21格式的byte数组,并且视频帧的图像需要是正方向的.和android相机打过交道的都清楚,android的came ...
- Android开发 获取当前activity的屏幕截图(转载)
首先通过下面的函数获取Bitmap格式的屏幕截图: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 pu ...
- win10执行shell脚本
我们在win10如何执行以.sh文件的脚本呢? 开发步骤:1.写脚本b2q_goods.sh #!/bin/bashsql="select * from b2q.goods where go ...
- _beginthreadex创建线程,立即执行?
一个线程创建后,并不是立马就执行,而是等时间片到来后才执行... C++ Code 12345678910111213141516171819202122232425262728293031323 ...
- PrintArea打印,@media screen解决移动web开发的多分辨率问题,@media print设置打印的样式
PrintArea打印,局部DIV打印插件,依赖JQuery. github:https://github.com/RitsC/PrintArea 当打印时需要临时改变页面布局,可以使用 @media ...
- iOS - 导航栏UINavigationController经常使用属性
1.设置导航栏标题 self.title = @"dylan_李伟宾"; 2.设置导航栏样式 设置方法: [self.navigationController.navigation ...