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系统信息(内存、cpu、sd卡、电量、版本)获取
  3. Android如何获取网络连接状态及怎样调用网络配置界面
  4. Android应用程序组件Content Provider的启动过程源代码分析(3)
  5. 2010.12.26——— android 获得手机号码 和 IMEI号 等
  6. Android应用程序组件Content Provider的启动过程源代码分析(5)
  7. Android代码实现APK文件的安装与卸载
  8. 自定义View
  9. android启动另一应用

随机推荐

  1. Android(安卓)软键盘盖住输入框的问题
  2. csr8811蓝牙芯片porting总结
  3. Android常用控件之悬浮窗(Service实现)
  4. EditText 的常用属性与解释
  5. Android(安卓)2.2兼容性移植
  6. android通用文件操作
  7. Android开机广播和关机广播
  8. Android(安卓)LCD(三):Samsung LCD接口篇
  9. android 为摄像头增加闪光灯(s5pv210)
  10. Conversion to Dalvik format failed: Un