APK的下载更新安装
来源:互联网 发布:雷蛇2000 mac驱动 编辑:程序博客网 时间:2024/05/20 06:23
一般的安卓app都有自动更新功能,实现app的更新,以让用户体验新版本的功能。
代码比较简单,当用户进入app中,首先会检验当前app的版本号与服务器的版本号,如果当前版本号小于服务器的版本号,则提示用户更新app。
/** * 获取到当前的本地版本 */ UpdateInformation.localVersion = MyApplication .getInstance() //包管理独享 .getPackageManager() //包信息 .getPackageInfo( MyApplication.getInstance() .getPackageName(), 0).versionCode; /** * 获取到当前的版本名字 */ UpdateInformation.versionName = MyApplication .getInstance() .getPackageManager() .getPackageInfo( MyApplication.getInstance() .getPackageName(), 0).versionName;
通过PackageInfo这个类可以得到app相应的一些信息;
下面来看具体下载apk的代码,这里我使用AsyncTask来执行异步任务,首先把一个最新的apk放到服务器端的根目录下(root);这里我就不做说明了哈。
class DowoLoadTask extends AsyncTask<Void,Void,Void>{ @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Void doInBackground(Void... params) { try { URL url = new URL("http://10.88.88.88:8080/gpay/Chamberlain.apk"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); if(connection.getResponseCode()==200){ fileMax = connection.getContentLength(); InputStream is = connection.getInputStream(); byte buffer[] = new byte[1024]; int length = 0; do{ length = is.read(buffer); Log.e("length",length+""); if(length<0){ downloadFinish = 100; break; } fos.write(buffer,0,length); progress = progress + length; Log.e("fileMax", fileMax+""); Log.e("progressssss",progress+ ""); double progree = ((double)progress / (double)fileMax); Log.e("progreeeeeeeee",progree+""); int pro = (int) (progree * 100); Log.e("progresss",pro+""); download_handler.sendEmptyMessage(pro); }while(true); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void aVoid) { if(downloadFinish == 100){ Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + download_file.getAbsolutePath()),"application/vnd.android.package-archive"); SecondActivity.this.startActivity(intent); } super.onPostExecute(aVoid); } }
然后通过handler来改变progressBar的进度
private Handler download_handler = new Handler(){ @Override public void handleMessage(Message msg) { progressBar.setProgress(msg.what); super.handleMessage(msg); } };
代码看起来很简单,项目截图如下:
提示下载
下载完成后开始安装apk
这块引用的事别人的图片! 介绍完毕。哈哈
0 0
- APK的下载更新安装
- apk的更新和下载安装
- apk版本更新下载安装
- apk检查更新下载安装
- Android 更新下载apk 安装apk 打开apk
- android apk的更新下载
- apk更新、下载、安装(一)
- android 6.0下载更新之后安装APK
- Android中检查更新APK,以及下载APK安装。
- 普通的APK安装更新
- Android 版本更新下载自动安装APK,并解决Android6.0安装失败的问题
- Android 版本更新下载自动安装APK,并解决Android6.0,7.0安装失败的问题
- apk的下载和安装
- 3、下载更新APK
- HttpClient更新下载apk
- 下载更新APK
- Android客户端apk自动检测更新自动下载自动安装的实现方法
- Android APK 版本更新的下载和安装 直接上代码
- Context, What Context?
- <Introduction to Java Programming> Note 01
- Jenkins+Git+Gradle+Fir 自动Build并上传Fir
- 利用第三方工具dSYM快速定位crash文件中崩溃的函数位置
- Android 之小技巧
- APK的下载更新安装
- jquery禁止鼠标右键事件
- 个人总结
- Java_IO
- 【JAVA开发之IO流1-1】IO流简介及输入流和输出流
- Shell命令中的 &&,||,&与|
- 笔试总结——linux篇【持续更新】
- 绘制多边形和不规则按钮
- Aho-Corasick算法