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. Android系统信息(内存、cpu、sd卡、电量、版本)获取
  2. Android应用程序组件Content Provider的启动过程源代码分析(3)
  3. Android权限【大全】
  4. Android应用程序组件Content Provider的启动过程源代码分析(5)
  5. ANDROID PAD版本 PHONE版本 源码有什么 区别?
  6. Android各个版本API的区别
  7. Android获取ROOT权限
  8. Android 解屏代码

随机推荐

  1. Android中使用SAX方式解析XML文件
  2. Android消息处理系统原理简要概述
  3. Android介绍
  4. android-studio使用cmake编译ffmpeg实践
  5. Google Android操作系统内核编译图文教程
  6. 分享两本android电子书
  7. android设置背景色为透明
  8. Android(安卓)Launcher 分析
  9. android 触摸事件、点击事件的区别
  10. Android(安卓)Mms专题之:PDU介绍