Android自動更新アップグレードアプリ

3393 ワード

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 = "        
" + " " + Version.getName(Setting.this) + "
" + " :" + appVersion.getNum() + "
" +" "; 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); }