`
喧嚣求静
  • 浏览: 581325 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android自动更新升级APP

 
阅读更多
private void checkVersion( AppVersion appVersion){
		if(StringUtils.isEmpty(appVersion.getNum())){
			UIHelper.ToastMessage(Setting.this, "获取不到最新版本,请稍后重试");	
			return ;
		}
		if(Version.getName(Setting.this).compareTo(appVersion.getNum())>=0){
			UIHelper.ToastMessage(Setting.this, "当前版本号:"+appVersion.getNum()+"已是最新版本,谢谢使用");	
			return ;
		}
		checkUpdate(appVersion);
	}
	
	
	
	private void checkUpdate(final AppVersion appVersion){
		String info = "发现新版本的应用\n" +
				"本地版本" + Version.getName(Setting.this) + "\n" +
				"最新版本:" + appVersion.getNum() + "\n" +"是否立即更新";

			
			builder = new AlertDialog.Builder(this);
			builder.setTitle("程序自动更新")
				.setMessage(info)
				.setIcon(R.drawable.refresh)
				.setCancelable(false)
				.setPositiveButton("确定", new DialogInterface.OnClickListener() {
					  public void onClick(DialogInterface dialog, int id) {
						         doUpdate(appVersion.getApkAddress());
						        dialog.dismiss();
					}
				})
				.setNegativeButton("取消", new  DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int i) {
						 dialog.dismiss();
					}
				});
			
			apkhandler.post(new Runnable() {
				public void run() {
					Dialog dlg = builder.create();
					dlg.show();
				}
			});
	}
	
	private void doUpdate(final String apkDownAddr) {
		progressDlg = new ProgressDialog(this);
		progressDlg.setTitle("正在下载");
		progressDlg.setMessage("请稍候..");
		progressDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);
		handler.post(new Runnable() {
			public void run() {
				progressDlg.show();
			}
		});
		
		if (!isSdCardReady()) {
			UIHelper.ToastMessage(Setting.this, "SD卡没准备好");
			progressDlg.dismiss();
			return;
		}
		apkFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/temp/dianjiaqin_hy.apk";
		apkFile = new File(apkFilePath);
		if (apkFile.exists()) {
			apkFile.delete();
		}

		new Thread() {
			@Override
			public void run() {
				try{
				  HttpUtils.download(apkDownAddr, apkFilePath,new DefaultHttpClient(new BasicHttpParams()));
				 }catch(RuntimeException e){
					 UIHelper.ToastMessage(Setting.this, "更新失败,网络异常,请检查网络是否连接超时");
				 }
				apkhandler.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");
				Setting.this.startActivity(intent);
				applications.clearUserData();
				//applications.quit();
				AppManager.getAppManager().AppExit(getParent());
			}
		}.start();
	}
	
	public  boolean isSdCardReady() {
		return Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
	}

 

分享到:
评论

相关推荐

    Delphi XE android 自动 在线更新升级APP,然后自动安装的代码实现

    在本文中,我们将深入探讨如何使用Delphi XE在Android平台上实现APP的自动在线更新与升级功能。Delphi XE是一款强大的集成开发环境(IDE),它支持跨平台应用程序开发,包括针对Android系统的应用。实现自动在线更新...

    android app自动升级demo

    "android app自动升级demo"是一个实践示例,它演示了如何实现这个功能。以下将详细讲解自动升级的核心知识点: 1. **获取当前版本信息**: - 在Android应用中,可以通过`PackageManager`类来获取应用的当前版本...

    Android App自动更新app源码

    "Android App自动更新app源码"指的是提供了一种实现应用自动检查、下载和安装更新的代码实现。这个压缩包文件"auto-update-service-develop"很可能包含了实现这一功能的完整服务组件及相关资源。 在Android系统中,...

    Delphi XE 10 android安卓APP程序自动升级代码

    网上找了一堆Delphi安卓APP程序自动升级方法都大多不太好用,有的需要配置WEB服务器,有的控制下载和升级管理麻烦,于是综合网上资料,根据项目需要整理了一个代码单元,可以直接调用,测试环境Delphi XE 10.3

    Android 自动更新程序

    本篇文章将深入探讨如何构建一个Android自动更新程序,包括其背后的原理、实现步骤以及可能遇到的问题。 首先,我们要理解自动更新的核心原理。Android应用的自动更新通常基于Google Play Store或自建的应用市场。...

    qt for android 更新APP

    在"qt for android 更新APP"的场景下,我们讨论的是如何在Android应用程序内部实现更新功能。这通常涉及到以下几个关键知识点: 1. **自动检查更新**:应用启动时或在设定的时间间隔内,通过网络请求(通常是HTTP或...

    【搞定】xamarin.android自动升级

    本篇将深入探讨如何在 Xamarin.Android 项目中实现应用的自动升级功能,让您的用户能够无缝地获取最新的应用版本。 一、自动升级原理 自动升级的基本原理是通过在应用中嵌入一个检查更新的服务或组件,定期检测...

    Android app应用的自动升级更新

    在Android平台上,应用的自动升级更新是提升用户体验和确保软件安全的重要机制。它允许开发者发布新版本的应用,并在用户设备上无缝地进行更新,无需用户手动干预。本篇将深入探讨这一过程,涵盖其原理、实现方法...

    Android 实现app自动升级

    在Android应用开发中,为了确保用户能够及时获取到最新的功能和修复的安全问题,开发者通常需要实现应用程序的自动更新功能。本篇文章将详细讲解如何利用Android自带的`DownloadManager`服务来实现这一功能。 首先...

    xamarin App自动升级

    对于 Android 应用来说,实现自动升级功能是提高用户体验和确保应用始终处于最新状态的重要手段。本篇文章将深入探讨如何在 Xamarin 平台上为 Android 应用实现自动升级功能。 首先,我们要理解自动升级的基本流程...

    android app内部更新,版本升级

    在Android应用开发中,实现应用内部更新和版本升级是一项重要的功能。这允许开发者在发布新版本时,确保用户能够及时获得最新的修复、功能和优化,提高用户体验。在本教程中,我们将深入探讨如何在Android应用中集成...

    Android8.0 APP更新

    首先,我们来谈谈"Android 8.0 APP更新"。Android 8.0,又称为Oreo,引入了一系列针对应用更新的优化措施,旨在提供更快、更省流量的更新体验。 1. **后台限制**:Android 8.0引入了严格的后台执行限制,以提高设备...

    Android应用APP自动更新功能的代码实现

    在Android应用开发中,为提高用户体验并确保软件始终处于最新状态,自动更新功能是必不可少的。本篇文章将详细介绍如何在Android应用中实现这一功能,以便用户在有新版本可用时能够自动或手动触发更新流程。 首先,...

    android7 以上版本自动更新app

    实现 android7、8 以上版本自动更新app 程序,仅供参考。

    静默更新Android APP

    Android不用任何人工点击实现自己的APP自动检查版本,下载,自己安装,全程不用点击。前段时间做的Android板子的室外悬挂的酒精测试系统,美国用的,大致就是投币、刷卡可以自主测试是否可以驾车,由于不能人员一台...

    Android中的软件的自动更新(包括静默更新,需Root权限)

    在Android系统中,软件的自动更新是保持应用最新、最安全状态的重要机制。开发者通常会发布新版本以修复已知问题、添加新功能或提升性能。本篇文章将深入探讨Android软件的自动更新机制,特别是涉及静默更新以及需要...

    Android APP增量升级的实现方式

    在Android应用开发中,增量升级是一种优化用户更新体验的技术,它允许APP仅下载与旧版本不同的部分,而非整个新版本的APK。这种方式显著减少了数据消耗,缩短了更新时间,提高了用户体验。本文将深入探讨Android APP...

    Android APP升级示例

    使用Android Studio 4.1.1 开发的 自带升级功能的APP。本APP已经实现了支持Android5~11的适配,可以完美运行在Android5~11上。另外,本APP实现了在APP上通过RestAPI访问远程数据库功能,可以给初学者作为参考样例。

    android app版本自动检测、更新

    在Android应用开发中,版本自动检测与更新是一个关键的特性,它确保用户能够及时获取到应用的最新功能和性能优化,同时修复可能存在的安全漏洞和已知问题。本篇文章将详细探讨这一主题,涵盖以下几个核心知识点: 1...

Global site tag (gtag.js) - Google Analytics