同一个应用安装时的类型却不同
来源:互联网 发布:教学软件下载 编辑:程序博客网 时间:2024/06/07 04:45
这2天碰到一个问题,从一个客户预制的应用商店下载的apk,从文件管理这个路径可以正常安装,但是从downloadProvider这里却安装不了,
分析:
在filemanager和downloadprovider两处解析出的mimetype不一样,
在filemanager代码里,查看mimetype类型是:application/vnd.android.package-archive,
而在downloadprovider代码里,查看mimetype类型是:application/octet-stream,
通过比对mimetype的属性表,也就是文件:mime_types.properties 路径在:\code\LINUX\android\packages\apps\CMFileManager\res\raw目录下,
。。。
# Application
apk = APP | application/vnd.android.package-archive | fso_type_app_drawable
pkg = APP | application/octet-stream | fso_type_app_drawable
deb = APP | application/x-debian-package | fso_type_app_drawable
udeb = APP | application/x-debian-package | fso_type_app_drawable
msi = APP | application/x-msdownload | fso_type_app_drawable
rpm = APP | application/x-rpm | fso_type_app_drawable
。。。
只有mime是这个类型 application/vnd.android.package-archive 才是能正常安装的apk。
至于,同一个应用为什么在downloadprovider里面解析出不一样的mimetype,还在分析,这里先做个笔记,后面补充。
接着前面的问题描述,下面是解决方法:
mimetype不同的原因是,在downloadprovider这里,当从网络下载一个应用,在把它写进数据库库时,会去设置它的mimetype,
所以修改方法是在写入数据库时,写入mimetype的值
DownloadProvider.java{
public Uri insert(final Uri uri, final ContentValues values) {
String uriStr = values.getAsString(Downloads.Impl.COLUMN_URI);
String fileNameStr = values.getAsString(Downloads.Impl.COLUMN_FILE_NAME_HINT);
if(uriStr.endsWith(".apk") || fileNameStr.endsWith(".apk")){
filteredValues.put(Downloads.Impl.COLUMN_MIME_TYPE,"application/vnd.android.package-archive");
}
}
}
- 同一个应用安装时的类型却不同
- 用同一个工程创建两个不同版本的应用
- 用同一个工程创建两个不同版本的应用
- 用同一个工程创建两个不同版本的应用
- 如何用同一个工程创建两个不同版本的应用
- 如何用同一个工程创建两个不同版本的应用
- 同一个%的不同答案
- 是同一个销售订单类型,根据不同销售组织分配不同的号码段的增强出口
- 关于同一个网站下Session却不能同步的问题
- 不同的项目使用同一个配置文件
- 同一个服务器,不同表数据的复制
- flex访问同一个webService的不同方法
- 同一个TextView不同文字的点击事件
- ExtJS4 给同一个formpanel不同的url
- 同一个定时器实现不同的定时功能
- 同一个UILabel不同的字体颜色
- iOS - 同一个Label的不同样式显示
- 链接到同一个页面的不同位置
- Android Studio基础之生成Apk(六)-学习篇
- LeetCode---Permutations II
- linux dup,dup2,dup3 复制一个文件描述符
- OpenGL纹理贴图相关基本概念
- ASPxPopupControl 关闭刷新
- 同一个应用安装时的类型却不同
- iOS拨打电话功能的实现
- 点击空白处隐藏软键盘
- js中的cookie操作
- jQuery的选择器——可见性过滤选择器
- 开启或者关闭软键盘的工具类
- 带你看懂Dictionary的内部实现
- 在Windows上安装Git
- EventBus的关键函数介绍