android 从服务器上获取APK下载安装
简单的为新手做个分享。
网上有些资料,不过都是很零散,或是很乱的,有的人说看不懂。 一直有新手说 做到服务器更新APK时没有思路,这里做个简单的分享,希望有不同思路的可以讨论。
下面做个很简单的读取处理和讲解思路。 代码带有注释:
try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url .openConnection(); connection.setConnectTimeout(10 * 1000); //超时时间 connection.connect(); //连接if (connection.getResponseCode() == 200) { //返回的响应码200,是成功. File file = new File("/mnt/sdcard/yang/dujinyang.apk"); //这里我是手写了。建议大家用自带的类file.createNewFile(); InputStream inputStream = connection.getInputStream(); ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream(); //缓存 byte[] buffer = new byte[1024 * 10]; while (true) { int len = inputStream.read(buffer); publishProgress(len); if (len == -1) { break; //读取完} arrayOutputStream.write(buffer, 0, len); //写入} arrayOutputStream.close(); inputStream.close(); byte[] data = arrayOutputStream.toByteArray(); FileOutputStream fileOutputStream = new FileOutputStream(file); fileOutputStream.write(data); //记得关闭输入流 fileOutputStream.close(); } } catch (MalformedURLException e) {
. e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
以上是读取APK文件并保存在了本地,InputStream转为FileOutputStream保存HttpURLConnection获取到的数据 。
那么只要再找到你的那个保存的路径就能实现安装了。
下面是安装和卸载的代码: 首先说下卸载:
Uri packageURI = Uri.parse("package:com.demo.DUJINYANG");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
Environment拥有一些可以获取环境变量的方法 package:com.demo.DUJINYANG 这个形式是 package:程序完整的路径 (包名+程序名).
然后是 --安装:
String str = "/Dujinyang.apk"; //APK的名字
String fileName = Environment.getExternalStorageDirectory() + str; //我们上面说到路径
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)),
"application/vnd.android.package-archive");
startActivity(intent);
主要代码如下://打开APK程序代码private void openFiles(File file) {// TODO Auto-generated method stubIntent intent = new Intent();intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setAction(android.content.Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");startActivity(intent);}
当然拉 ,这里不仅一种方法:以下方法也是可行的--
//下载apk程序代码
protected File downLoadFile(String httpUrl) {final String fileName = "dujinyang.apk";File tmpFile = new File("/sdcard/update");if (!tmpFile.exists()) {tmpFile.mkdir();//创建文件夹}final File file = new File("/sdcard/update/" + fileName);try {URL url = new URL(httpUrl);try {HttpURLConnection conn = (HttpURLConnection) url.openConnection();InputStream is = conn.getInputStream();FileOutputStream fileOutput= new FileOutputStream(file);byte[] buf = new byte[256];//分配byteconn.connect();double count = 0;if (conn.getResponseCode() >= 400) {Toast.makeText(Main.this, "连接超时", Toast.LENGTH_SHORT).show();} else {while (count <= 100) {if (is != null) {int numRead = is.read(buf);if (numRead <= 0) {break;} else {fileOutput.write(buf, 0, numRead);}} else {break;}}}conn.disconnect();//需要记得关闭连接fileOutput.close();is.close();} catch (IOException e) {e.printStackTrace();}} catch (MalformedURLException e) { e.printStackTrace();}return file;}
到这里 思路简单的理清 完了。
此时可以根据你自身的项目去整改。如果新手还有不懂的可以私聊。
--分享 希望大家有好的代码可以分享,共同讨论
android 从服务器上获取APK下载安装相关推荐
- android服务下载apk下载地址,android 从服务器上获取APK并下载安装
简单的为新手做个分享. 网上有些资料,不过都是很零散,或是很乱的,有的人说看不懂. 一直有新手说 做到服务器更新APK时没有思路,这里做个简单的分享,希望有不同思路的可以讨论. 下面做个很简单的读 ...
- 【阿里云 Linux 服务器】购买 Linux 到项目部署过程中遇到的问题,部署 SpringBoot 项目到服务器上,在手机上安装 Android 程序进行测试
文章目录 一.购买好服务器之后要重置密码 二.利用 putty 程序登录访问你的服务器 三.配置安全组开放端口 四.部署项目前期准备工作 4.1 安装 Java 4.2 安装 mysql 4.3 安装 ...
- android studio真机测试不生成apk,Android应用开发Android Studio编译出来的APK无法安装如何解决?...
本文将带你了解Android应用开发Android Studio编译出来的APK无法安装如何解决?,希望本文对大家学Android有所帮助. Android Studio编译出来的APK无法安装如何解 ...
- windows主机用scp命令向Linux服务器上传和下载文件
windows主机用scp命令向Linux服务器上传和下载文件 文章目录: 一.scp介绍 二.scp上传和下载 1.上传 2.下载 三.scp的更多参数 一.scp介绍 scp是secure cop ...
- WebRequest之HttpWebRequest实现服务器上文件的下载(一)
WebRequest是操作WEB请求的抽象象,它作为所有WEB请求的基类,主要由FileWebRequest.FtpWebRequest.HttpWebRequest这三个类进行实现.(选自MSDN) ...
- Android PackageManagerService 总结(一)应用市场下载安装apk流程
前言: 本篇文章是对系统包安装流程的总结,基于Android12 上 com.android.packageinstaller 源码的分析,第三方应用商城(华为商城,小米商城,应用宝,豌豆荚,酷安等) ...
- 96.android 简单的更新APP、下载安装APK(四种方式)
//第一种 下载更新使用OKHttp+ProgressDialog进度条+第三方AlertDialog //第一步 在Manifest.xml里面写权限: <!-- 网络权限--> < ...
- apk下载安装,存储的位置,路径
From: http://www.oschina.net/question/1249832_126587 来自华为内部资料 PackageInstaller 原理简述 应用安装是智能机的主要特点,即用 ...
- android+ping+root,pingpong root apk下载
软件标签: root pingpong root是由安全研究团队Keen Team研发的一款针对三星S6/S6 Edge的刷机root工具,它的优势之处在于使用PingPong Root不会刷入第三方 ...
- Cisco服务器怎么安装系统,Cisco MCS服务器上Microsoft操作系统补丁安装发生故障
当用户尝试在Cisco CallManager服务器上安装Microsoft操作系统热修复程序MS06-040时,安装失败,并显示错误消息"您没有更新的权限".请与您的系统管理员联 ...
最新文章
- 计算机软件考试预测,2020年计算机软件水平考试信息技术处理员预测试题及参考答案...
- 本周技术主题-----.net中的资源文件
- 七十一、Vue项目城市选择页搜索逻辑实现,边输入边搜索功能的解决办法:节流函数
- MySQL——基本配置
- netframework 4.0内置处理JSON对象
- python特性 property_python之中特性(attribute)与属性(property)有什么区别?
- 苹果终于迷途知返?还是指纹识别更香...
- Mysql学习总结(19)——Mysql无法创建外键的原因
- PTA—计算摄氏温度(C语言)
- TMS320C55x的寄存器
- 查询性能优化 in and union
- Python练习5-正则表达式
- 你得真心喜欢些什么,才能过好漫长的冬天
- 调幅广播系统建模与仿真
- 2020-11-30 DOA估计/方向谱分析 中文书单
- openresty实现隧道代理
- Mac 双系统分区合并
- VB.Net实现身份证读卡器调用读取身份证信息和社保卡信息
- 普通本科毕业一年,靠着这1000道JAVA面试题,终逆袭上岸
- 100-days: twenty-four