android 升级包检测并更新实现
实现步骤:
1.获取当前android程序的包名或版本代码
public class Version {public int getCode() {              //android.content.ContextWrapper.getPackageManager()PackageManager packageManager = app.getPackageManager();int code = -1;try {code = packageManager.getPackageInfo(Package.name, 0).versionCode;}catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return code;}public String getName() {PackageManager packageManager = app.getPackageManager();String name = null;try {name = packageManager.getPackageInfo(Package.name, 0).versionName;}catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return name;}}

上面的版本代码是我们在AndroidManifest.xml配置的
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.test.mobile" android:versionCode="100000100"android:versionName="1.0.1">

2.启动软件时从远程服务器端获取版本代码
versionName = app.server.getContent("/dist/version.txt").trim();

3.当前程序版本代码与远程获取的比对,不同则升级
if (currentVersionName.equals(versionName) || StrFuncs.isEmpty(versionName)) {return false;}

4.启动线程下载远程应用
a.获取android手机安装apk路径和相关权限
apkFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/temp/test_android.apk";apkFile = new File(apkFilePath);if (apkFile.exists()) {apkFile.delete();}  

b.下载安装包apk
handler = new Handler();new Thread() {@Overridepublic void run() {app.server.download("/dist/test_android.apk", apkFilePath);handler.post(new Runnable() {public void run() {progressDlg.cancel();}});Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");fromActivity.startActivity(intent);fromActivity.finish();}}.start();

在AndroidManifest.xml配置的权限
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. 在Eclipse中导入整个Android系统代码
  3. MQTT的学习研究(十五) MQTT 和android整合文章
  4. 判断网页是运行在iOS上还是Android上
  5. Android应用程序绑定服务(bindService)的过程源代码分析(3)
  6. android 设置时区
  7. Android系统信息(内存、cpu、sd卡、电量、版本)获取
  8. Android如何获取网络连接状态及怎样调用网络配置界面
  9. android 升级包检测并更新实现

随机推荐

  1. 在Python中搜索一个并行数组
  2. python的requests类库(一)requests库和urll
  3. uwsgi遇到ImportError: No module named
  4. Gunicorn + Django + Heroku。Python的路
  5. Python 【面向对象(类)】 学习笔记
  6. 为什么在Python中1 == True但是2!= True? [
  7. [python]练习之九九乘法表
  8. Python能不能方便的画三角形?
  9. win8.1 cygwin - pip正在安装到windows p
  10. 使用Python启动浏览器(Chromium)并更改URL