Android 提示版本更新的实现

应用软件更新一般步骤:

1、首先检测网络是否存在,如果存在进行版本信息检测

[java] view
plain
copy

  1. NetworkInfo networkInfo = NetInfo.getNetworkInfo(getActivity());  
  2. if (networkInfo != null) {  
  3.     state = networkInfo.getState();  
  4.     typeName = networkInfo.getTypeName();  
  5.     apnName = networkInfo.getExtraInfo();  
  6.       
  7.     if (state == NetworkInfo.State.CONNECTED) {  
  8.         if (typeName.equals("MOBILE")) {  
  9.             if (apnName.equals("ctnet") || apnName.equals("cmnet") || apnName.equals("internet")) {  
  10.                 checkUpdate();  
  11.             } else {  
  12.                 setNet();  
  13.             }  
  14.         } else {  
  15.             checkUpdate();  
  16.         }  
  17.     } else {  
  18.         Message message = new Message();  
  19.         message.what = 102;  
  20.         handler.sendMessage(message);  
  21.     }  
  22. } else {  
  23.     Message message = new Message();  
  24.     message.what = 102;  
  25.     handler.sendMessage(message);  
  26. }  

2、检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName,我使用的是

[html] view
plain
copy

  1. android:versionCode="99"  
  2. android:versionName="3.0.0">  

3、从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版本进行匹配,如果不匹配,提示用户进行升级,如果匹配则进入程序主界面。

[java] view
plain
copy

  1. private void checkUpdate() {  
  2.     //统计用户打开客户端的量  
  3.     UserController.commitUserOpenInfo(getActivity());  
  4.     //获取服务器端apk版本号  
  5.     CommonController.getInstance().getAppVersionCode(getActivity(), versionCodehandler);//获取版本号  
  6. }  

4、当提示用户进行版本升级时,如果用户点击了确定,系统将自动从服务器上下载并进行自动升级,如果点击取消将进入程序主界面。

[java] view
plain
copy

  1. private Handler versionCodehandler = new Handler(){  
  2.     public void handleMessage(android.os.Message msg) {  
  3.         versionCode = (Integer)msg.obj;//返回的数值为版本号  
  4.         if(pinfo.versionCode < versionCode) {  
  5.             CommonController.getInstance().getAppUpdates(getActivity(), updateInfohandler);  
  6.         }   
  7.         System.out.println("versionCode = " + versionCode);  
  8.     };    
  9. };  

去下载更新

[java] view
plain
copy

  1. private Handler updateInfohandler = new Handler(){  
  2.     public void handleMessage(android.os.Message msg) {  
  3.         updateInfo = (String)msg.obj;  
  4.         updateInfo = updateInfo.replace("\\n", "\n");  
  5.           
  6.         new AlertDialog.Builder(getActivity()).setTitle("提示").setMessage(updateInfo)      
  7.            .setPositiveButton("确定", new DialogInterface.OnClickListener() {       
  8.               @Override       
  9.                public void onClick(DialogInterface dialog, int which) {   
  10.                    openURL(DamaiDataAccessApi.APK_DOWNLOAD_ADDRESS);//下载更新  
  11.                }       
  12.            }).setNegativeButton("取消", new DialogInterface.OnClickListener() {   
  13.                  
  14.                public void onClick(DialogInterface dialog, int whichButton) {       
  15.                     handler.sendEmptyMessage(0);  
  16.                }   
  17.            })  
  18.            .setCancelable(false)  
  19.            .create().show();  
  20.     };    
  21. };  

更新实现方式

[java] view
plain
copy

  1. final void openURL(String url) {  
  2.     launchIntent(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));  
  3. }  
  4.   
  5. void launchIntent(Intent intent) {  
  6.     if (intent != null) {  
  7.       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);  
  8.       try {  
  9.           startAnimaActivity.startActivity(intent);  
  10.               try {  
  11.                   //这个是程序中跳转到首页代码,这里加上是为了手机在浏览器页面点击返回的时候能够回到自己的客户端首页  
  12.                   FragmentTransaction ft = getFragmentManager().beginTransaction();  
  13.                   AnimationUtil.startFragmentsAnimationWithFadeInFadeOut(ft);  
  14.                   MainFragment mf = new MainFragment();  
  15.                   ft.add(R.id.fragmentRoot, mf, FragmentFlagNameList.MAIN);  
  16.                   ft.addToBackStack(FragmentFlagNameList.MAIN);  
  17.                   ft.commit();  
  18.                 } catch (Exception e) {  
  19.                     // TODO: handle exception  
  20.                 }  
  21.       } catch (ActivityNotFoundException e) {  
  22.       }  
  23.     }  
  24. }  
时间: 2024-11-08 22:17:10

Android 提示版本更新的实现的相关文章

Android程序版本更新之通知栏更新下载安装_Android

Android应用检查版本更新后,在通知栏下载,更新下载进度,下载完成自动安装,效果图如下: •检查当前版本号 AndroidManifest文件中的versionCode用来标识版本,在服务器放一个新版本的apk,versioncode大于当前版本,下面代码用来获取versioncode的值 PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); int

Android检测版本更新

一.准备       1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName.       2.从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版本进行匹配,如果不匹配,提示用户进行升级,如果匹配则进入程序主界面.       3.当提示用户进行版本升级时,如果用户点击了确定,系统将自动从服务器上下载并进行自动升级,如果点击取消将进入程序主界面. 二.效果图                        三.

Android程序版本更新之通知栏更新下载安装

Android应用检查版本更新后,在通知栏下载,更新下载进度,下载完成自动安装,效果图如下: •检查当前版本号 AndroidManifest文件中的versionCode用来标识版本,在服务器放一个新版本的apk,versioncode大于当前版本,下面代码用来获取versioncode的值 PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); int

Android 实现电话拦截及拦截提示音功能的开发_Android

  本文所讲的内容是在Android系统中如何写程序进行电话拦截,并发出拦截提示音提醒用户,可以说此功能还是比较实用的.        1.电话拦截        这个功能大家可能都知道了,就是利用反射原理调用ITelephony的隐藏方法来实现.        2.拦截后提示忙音/空号/已关机/已停机        这个功能其实是要用到MMI指令,具体如何设置呼叫转移的指定可以参考这里 http://baike.baidu.com/view/206402.html?fromTaglist.  

Android震动与提示音实现代码_Android

本文实例为大家分享了android消息提示的具体代码,供大家参考,具体内容如下 protected AudioManager audioManager; protected Vibrator vibrator; audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); //此方法是由Context调用的 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_S

Android AutoCompleteTextView自动提示文本框实例代码_Android

 自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码:   最后一张获取文本框里面的值(其实就跟TextView.EditText一样): 首先,在xml中定义AutoCompleteTextView控件: activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/ap

界面-Android软件更新的问题

问题描述 Android软件更新的问题 正在做一款软件,要求是检测到有更新之后自动下载并且安装,不弹出安装界面,网上找了好多都不能实现.求解 PS:不是流氓软件,类似于银行叫号机的软件 解决方案 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import

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

由于Android项目开源所致,市面上出现了N多安卓软件市场.为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们也必须到安卓市场上进行更新,给我们增加了工作量.因此我们有必要给我们的Android应用增加自动更新的功能. 既然实现自动更新,我们首先必须让我们的应用知道是否存在新版本的软件,因此我们可以在自己的网站上放置配置文件,存放软件的版本信息: <update> <version>2</version> <name>baidu

Android对话框

项目源码下载 https://github.com/Wang-Jun-Chao/AndroidProjects 对话框 确定取消对话框 创建对话框构建器对象,类似工厂模式 AlertDialog.Builder builder = Builder(); 设置标题和正文 builder() builder() 设置确定和取消按钮 builder.setPositiveButton(, OnClickListener() { (DialogInterface dialog, which) { Toa