下载APK无法安装问题
来源:互联网 发布:数据字典生成工具 编辑:程序博客网 时间:2024/04/30 04:56
[DESCRIPTION]
浏览器下载文件时,有时会遇到下载后文件无法打开,比如ogg,3gp等格式,或者下载的apk无法安装等问题。这类问题一般是sever返回的mimetype有问题,导致打开时,发往其他app的Intent不能被正常处理。例如无法安装apk文件,一般通过搜索关键字"DownloadManager",会搜到类似如下的log:
06-27 14:20:15.364 919 919 W DownloadManager:Failed to start Intent { act=Android.intent.action.VIEWdat=content://downloads/all_downloads/9 typ=application/octet-stream flg=0x3 }:android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEWdat=content://downloads/all_downloads/9 typ=application/octet-stream flg=0x3 }
从log信息可以看出:mime typ=application/octet-stream 不能被处理。 主要原因是:下载apk时,server返回application/octet-stream,不是标准的mimetype: application/vnd.android.package-archive,
导致htmlviewer无法打开该inent. 这类一般是server issue,若server返回的是标准的:application/vnd.android.package-archive就不会有
这样的问题.
[SOLUTION]
先确认无法打开文件的正确mimetype,然后在DownloadHandler.Java中的DownloadStartNoStream()作特殊处理。将sever返回错误的mime强
制修正成正确的mime type即可。下面给出以无法打开apk为例的修改方案,同理,其他格式的文件也是类似的。
修改文件:\packages\apps\Browser\src\com\android\browser\DownloadHandler.java
修改方法:onDownloadStartNoStream()
具体修改:
public static void onDownloadStartNoStream(Activity activity,String url, String userAgent, String contentDisposition, String mimetype,String referer, boolean privateBrowsing, long contentLength) {
String filename = URLUtil.guessFileName(url, contentDisposition,mimetype);
Xlog.d(XLOGTAG, “Guess file name is: ” + filename + ” mimetypeis: ” + mimetype);
// modify start: change Mime for apk
if (filename.endsWith(“.apk”) &&mimetype.equals(“application/octet-stream”))
{
mimetype =”application/vnd.android.package-archive”;
}
// modify end
- 下载APK无法安装问题
- 下载的apk无法安装等问题,文件无法打开
- apk文件下载无法获大小问题
- jarsigner签名apk无法安装问题
- 解决服务器的apk无法下载的问题
- 解决网站无法实现APK文件下载问题
- Android 下载APK 安装APK 打开APK
- Android 下载APK 安装APK 打开APK
- Android 下载APK 安装APK 打开APK
- Android 下载APK 安装APK 打开APK
- Android 下载安装APK
- Android 下载安装APK
- android下载安装APK
- 下载安装APK
- android下载安装APK
- android下载安装APK
- 7.0 apk下载安装
- apk下载安装
- In 7-bit(进制转换,题意杀)
- ArrayList的扩容
- 网络安全之史上最全的njRAT通信协议分析
- Mac安装python3以及问题总结
- 写在开始的话
- 下载APK无法安装问题
- 【Docker】seaweedfs的搭建与使用
- Xutils 3 进行网络请求(get、post)、获取Cookies信息等
- java学习笔记8——抽象类和接口
- Cache-Concrol
- Global.asax详解
- 使用selenium和phantomjs抓取淘宝衣服并存入mongodb
- 强引用(Strong Reference)/软引用(Soft Reference)/弱引用(Weak Reference)/虚引用(Phantom Reference)
- Js 正则表达写法