http://lovezhou.iteye.com/blog/932847
应用软件经常会因为功能的增加而升级,升级经常是在客户端给用户升级的提示,然后用户下载最新的apk程序包,软件升级过程大多数需要在线完成。
android 在线安装apk程序包,主要用到系统自带的apk安装器进行安装。用到系统自带的apk安装器安装apk包,首先需要在配置文件中加入权限声明
调用系统apk安装器的主要代码是:
在正确url地址上下载下来apk后,先判断下载下来的文件类型,然后通过apk安装器即可安装
截图:
android 在线安装apk程序包,主要用到系统自带的apk安装器进行安装。用到系统自带的apk安装器安装apk包,首先需要在配置文件中加入权限声明
- <uses-permission android:name= "android.permission.INTERNET" ></uses-permission>
- <uses-permission android:name= "android.permission.INSTALL_PACKAGES" ></uses-permission>
- <uses-permission android:name= "android.permission.MOUNT_UNMOUNT_FILESYSTEMS" ></uses-permission>
- <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission
调用系统apk安装器的主要代码是:
- Intent intent = new Intent();
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setAction(android.content.Intent.ACTION_VIEW);
- /* 调用getMIMEType()来取得MimeType */
- String type = getMIMEType(f);
- /* 设置intent的file与MimeType */
- intent.setDataAndType(Uri.fromFile(f),type);
- startActivity(intent);
在正确url地址上下载下来apk后,先判断下载下来的文件类型,然后通过apk安装器即可安装
截图:
评论
很有可能是apk有问题,可以单独安装apk试试,看能否成功
单独安装可以安装,这个我试过了!
很有可能是apk有问题,可以单独安装apk试试,看能否成功
这种是覆盖安装,覆盖安装apk的时候,应该不会删掉数据库文件,你可以试一下,没测试过这个,不敢肯定,不好意思哈
这个是调用系统的安装器,所以都要弹出这个界面,如果调用系统的,暂时还不知道怎么跳过这一步,Android安装应用时,都会给用户提示
有好的方法再一起分享
把升级后的apk放到server上,客户端可以每次读取server的一个地址,从上面解析是否需要升级,如果需要,再到指定的url上去下载apk在线安装。
exp:server 的 url 中带 update=1字段,客户端每次请求这个url,可以改变update的值,双方约定好
那这样是不是意味着server一旦发布一个新的版本,就需要更新一次update值?
恩,一个参数,不知道有没有更好的办法,我现在只想到了这个
不是更新updata的值,可以约定好,比如说只有是3的时候更新,就可以了
把升级后的apk放到server上,客户端可以每次读取server的一个地址,从上面解析是否需要升级,如果需要,再到指定的url上去下载apk在线安装。
exp:server 的 url 中带 update=1字段,客户端每次请求这个url,可以改变update的值,双方约定好
那这样是不是意味着server一旦发布一个新的版本,就需要更新一次update值?
恩,一个参数,不知道有没有更好的办法,我现在只想到了这个
把升级后的apk放到server上,客户端可以每次读取server的一个地址,从上面解析是否需要升级,如果需要,再到指定的url上去下载apk在线安装。
exp:server 的 url 中带 update=1字段,客户端每次请求这个url,可以改变update的值,双方约定好
那这样是不是意味着server一旦发布一个新的版本,就需要更新一次update值?
把升级后的apk放到server上,客户端可以每次读取server的一个地址,从上面解析是否需要升级,如果需要,再到指定的url上去下载apk在线安装。
exp:server 的 url 中带 update=1字段,客户端每次请求这个url,可以改变update的值,双方约定好
apk签名要相同,否则无法覆盖安装
嗯,谢谢,你这里的签名相同,指的是私钥???还是别的什么?
key
apk签名要相同,否则无法覆盖安装
嗯,谢谢,你这里的签名相同,指的是私钥???还是别的什么?
apk签名要相同,否则无法覆盖安装
可以啊,当时我们就是server和client约定的
暂时没找到办法判断,我们之前做的是把新的apk直接放到url地址上,下载