1 首先在程序启动的时候 向服务器发送请求 服务器会返回    String  newVerString="2|app.quannaojiaoyu.com......"

2 然后根据 “|”拆分为俩个list 元素   取第一个list 元素 和当前的版本号进行比较 如果此元素大于版本号 则发现新版本开始下载 url 为list的第二个元素  下载完毕即可安装

String newVerString = functions.getHttpResponse(

urlApi + "base.asp", "getVer");

System.out.println("newString--->"+newVerString);

Log.d("StartPage", "Check Server.");

if (newVerString != null)

{

ArrayList listVerStrings = functions.splitString(newVerString);

//得到当前版本号

int curVersion = functions.getAppVersionName(getApplicationContext());

Log.d("StartPage", listVerStrings.get(0));

// Check New Version

if (curVersion < Integer.parseInt(listVerStrings.get(0)))

{

Log.d("StartPage", "find new version.");

try

{

URL Url = new URL(listVerStrings.get(1));

URLConnection conn = Url.openConnection();

conn.connect();

InputStream is = conn.getInputStream();

int fileSize = conn.getContentLength();//获取文件长度

Log.d("StartPage", "new version download start ("

+ String.valueOf(fileSize) + ")...");

msg = new Message();

msg.what = UPDATE_NEWVER;

msg.arg1 = fileSize;

handler.sendMessage(msg);

if (fileSize <= 0)return;

FileOutputStream FOS = new FileOutputStream(strSDPath

+ "/cawords.apk");

byte buf[] = new byte[1024];

int downLoadFilePosition = 0;

int numread;

while ((numread = is.read(buf)) != -1)

{

FOS.write(buf, 0, numread);

downLoadFilePosition += numread;

Log.d("StartPage", "new version downloading ("

+ String.valueOf(downLoadFilePosition)

+ ")...");

msg = new Message();

msg.what = UPDATE_DOWNLOAD;

msg.arg1 = downLoadFilePosition;

handler.sendMessage(msg);

}

Log.d("StartPage", "New Version Downloaded.");

Intent intent = new Intent();

// 安装程序

intent.setDataAndType(

Uri.fromFile(new File(strSDPath

+ "/com.quannaojiaoyu.cadict.apk")),

"application/vnd.android.package-archive");

startActivity(intent);

Log.d("StartPage", "New Version Installed.");

finish();

System.exit(0);

} catch (Exception ex)

{

如何得到当前版本号:

public static int getAppVersionName(Context context) {   int versionName = -1;   try   {    PackageManager pm = context.getPackageManager();    PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);    versionName = pi.versionCode;    Log.d("versionName ", versionName +"");   } catch (Exception e)   {    Log.e("GET VER", "Exception", e);   }   return versionName; }

android新版本怎么下载安装,android 新版本下载 安装相关推荐

  1. android 下载apk并自动安装,Android下载apk并自动安装(兼容Android7.0)

    1.开启服务下载新版本 View.OnClickListener checkVersion = new View.OnClickListener () { @Override public void ...

  2. android下载后的app自动安装,Android 7.0 下载APK后自动安装

    随着Android版本越来越高,Android对隐私的保护力度也越来越大.这些隐私权限的更改在为用户带来更加安全的操作系统的同时也为开发者带来了一些新的任务.如何让你的APP能够适应这些改变而不是崩溃 ...

  3. 【转】Android 4.3源码的下载和编译环境的安装及编译

    原文网址:http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html  告诉windows用户一个不好的消息,windows环境下没法 ...

  4. Android SDK更新下载失败以及Studio首次安装取消自动下载SDK

    这是因为,此时Android Studio会去获取 android sdk 组件信息,这个过程相当慢,还经常加载失败,导致Android Studio启动不起开. 解决办法: 不去获取android ...

  5. eclipse 搭建Android 开发环境(ADT安装和sdk下载,选择)

    1.首先下载一个安装版,或者绿色版本的eclipse. 2.安装 adt 1) 在线安装: 接着就是安装过程,安装后会自动提示重启eclipse. 2)离线安装,首先要先下载adt.zip文件 选择 ...

  6. Android应用安装apk版本升级,适配Android 8.0和Android 10.0下载安装,shell命令安装APK

    shell命令安装 /*** 安装apk** @param path apk文件路径*/ public void installAPK(String path) {Log.i(TAG, "i ...

  7. 在Ubuntu上下载、编译和安装Android 4.2 最新内核源代码(Linux Kernel)

    根据http://blog.csdn.net/luoshengyang/article/details/6564592博客内容对android4.2的编译 从源代码树下载下来的最新Android源代码 ...

  8. Android SDK Manager无法显示可供下载的未安装SDK解决方案

    Android SDK Manager无法显示可供下载的未安装SDK解决方案 参考文章: (1)Android SDK Manager无法显示可供下载的未安装SDK解决方案 (2)https://ww ...

  9. Android 4.4环境搭建——Android SDK下载与安装

    学习开发Android应用程序,须要下载安装Android SDK.在Android的官方站点的二级域名http://developer.android.com/index.html中.能够下载到完整 ...

  10. 【转】在Ubuntu上下载、编译和安装Android最新源代码

    原文网址:http://blog.csdn.net/luoshengyang/article/details/6559955 看完了前面说的几本书之后,对Linux Kernel和Android有一定 ...

最新文章

  1. jvm中有哪些内存区域会发生内存溢出
  2. TEG六周年 | 同心筑梦 共赢未来
  3. MyBatis拦截器原理探究
  4. C#调用C++DLL的小总结8---C++Dll中函数返回字符串指针
  5. nodejs实践录:简单的log日志模块
  6. dns设置邮箱服务器,专业版DNS设置-更多-Coremail论客邮件系统-企业邮箱,8亿用户信赖的邮件服务器系统...
  7. Abaqus 用户子程序 UEL
  8. 办公室计算机如何互传文件,办公室电脑互联,打印机共享,方便快速的网内文件传输...
  9. 计算机提示运行错误,每次电脑一开机就会提示脚本运行错误
  10. 订单可视化2实战-生产交付流程(流程再造核心区)
  11. UML建模,用EA画机票预订系统类图和对象图
  12. JavaSE基础知识
  13. 创业时代的七堂必修课
  14. 内网渗透之抓取隔壁小姐姐上网图片
  15. 知识产权贯标认证的好处,如何申请?
  16. 深度学习目标检测模型综述
  17. c语言编写程序,输入正整数n,计算0到n以内所有奇数的和,c语言输入正整数n,计算1~n中的奇数和以及偶数和并输出....
  18. 问题 E: 来淄博旅游
  19. java 抽奖 高并发_【java】如何设计高并发下的抽奖?
  20. 浅谈汽车转向灯的具体拆装方法

热门文章

  1. 如何刷一些网站的阅读量
  2. 数据仓库之搭建ODS(原始数据层)
  3. 中英文情感分析模型汇总
  4. flutter 修改iOS app图标 名称
  5. excel 表头合并 和拆分的例子
  6. 【CSDN 年度总结】爱与被爱的双向奔赴——我与《Ta》的点点滴滴
  7. PDF文档签名证书帮助您签署可信的电子合同
  8. c语言txt播放器,c语言播放器更新版
  9. Centos 默认网关GATEWAY不生效
  10. 微软手环2服务器,数据狂的最爱 微软手环2评测