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. Android(安卓)Timer 更好方法
  3. android studio 日期选择DatePickerDialog取值
  4. googleMap----放大,缩小,东南西北,四种视图切换代码
  5. Android(安卓)ListView 最后一行分割线不显示
  6. Android中RadioGroup组与onCheckedChanged事件
  7. Android(安卓)NDK JNI 入门笔记-day01-创建项目并运行
  8. Android(安卓)通过OKhttp3进行下载实现版本更新
  9. 三行代码去Android(安卓)USB ADB调试确认对话框

随机推荐

  1. Android(安卓)Retrofit + RxJava + MVP +
  2. Android设置屏幕亮度的两种方式
  3. Android内存和外存的学习
  4. android, iOS app reverse enginnering
  5. android图片缓存
  6. android:background="@drawable/"图片拉
  7. Hello Android - SQLite数据库操作
  8. 浅谈J2me游戏如何快速移植到Android
  9. 应用组件-应用程序介绍
  10. ant 编译android工程