android服务下载apk,android下载apk并安装
1、设置权限
2、业务代码
package com.example.esri.app04.network;
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
private File apkFile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void downloadAPK(View v){
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.show();
//准备用于保存apk文件的file对象 放在sd卡里面
apkFile = new File(getExternalFilesDir(null), "update.apk");
//启动分线程下载数据,显示下载进度
new Thread(new Runnable() {
@Override
public void run() {
try{
//1 得到链接对象
String path = "http://192.168.0.184:8080/storage.apk";
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);
connection.connect();
int responseCode = connection.getResponseCode();
if(responseCode == 200){
//设置dialog最大进度
dialog.setMax(connection.getContentLength());
InputStream is = connection.getInputStream();
FileOutputStream fos = new FileOutputStream(apkFile);
byte[] buffer = new byte[1024];
int len = -1;
while ((len = is.read(buffer)) != -1){
fos.write(buffer, 0, len);
dialog.incrementProgressBy(len);
}
fos.close();
is.close();
}
connection.disconnect();
//主线程,移除dialog,启动安装
runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.dismiss();
installAPK();
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
/**
* 启动安装apk
*/
private void installAPK() {
Intent intent = new Intent("android.intent.action.INSTALL_PACKAGE");
intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
startActivity(intent);
}
}
android服务下载apk,android下载apk并安装相关推荐
- android服务无法启动,Android服务无法启动(Android service would't start)
Android服务无法启动(Android service would't start) 我正在尝试在Android中实现简单的服务,但我无法统计基本服务. 这是我的主要课程: import java ...
- android服务应用场景,Android Service的使用介绍
简介 Service是Android应用程序中的一个组件,与用户不进行交互,可以长期的执行在后台.当新建一个服务的时候需要在AndroidManifest.xml文件中进行声明.服务可以通过Conte ...
- android服务开启线程,android之service与intentService的不同
不知道大家有没有和我一样,以前做项目或者练习的时候一直都是用Service来处理后台耗时操作,却很少注意到还有个IntentService,前段时间准备面试的时候看到了一篇关于IntentServic ...
- android服务拍视频,Android仿微信拍摄、录制视频,以及视频播放(基于JCameraView和GSYVideoPlayer)...
本项目使用Androidstudio开发工具 引入权限 引入依赖 //视频录制 implementation 'cjt.library.wheel:camera:1.1.9' //视频播放 api(' ...
- android 服务自动结束,Android服务自动停止
我正在制作一个带有闹钟功能的应用程序.我正在使用这种服务,不断检查设备的当前时间与我的数据库中的时间.Android服务自动停止 我的问题是,如果应用程序从后台删除或设备是rebooted,此serv ...
- android服务常驻内存,android service常驻内存的一点思考
我们总是不想自己的Android service被系统清理,以前时候大家最常用的办法就是在JNI里面fork出子进程,然后监视 service进程状态,被系统杀死了就重启它. 我分别在android4 ...
- Android服务模块作用,Android 9.0 AutotoMotive模块之CarService
Android 9.0 AutotoMotive模块之CarService Android 9.0 AutotoMotive模块之CarService 上一篇对Automotive模块的Vhal作了总 ...
- android服务重启间隔,android – 崩溃的服务在很长一段时间后重新启动
从 com/android/server/am/ActiveServices.java(未曝光) // How long we wait for a service to finish executi ...
- android服务的应用,Android学习指南之十四:Service详解及应用实例
上一节讲到了Gallery画廊,本节主要讲解Android组件Service,主要内容包括:Service的概念.生命周期及其应用实例. 一.Service简介 Service是Android程序中四 ...
- android服务无法启动,Android应用程序无法启动服务
嘿,我正在尝试在我的 Android应用程序上实现一项服务.服务必须执行活动的相同任务. IE,如果在CallLog.Calls内容提供程序上发生某些更改,则必须通知服务并将数据插入数据库,即使应用程 ...
最新文章
- AIX存储管理(二)物理卷管理
- mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...
- php跳转传值,php如何跳转页面并传值?
- 数据可视化组队学习:《Task01 - Matplotlib初相识》笔记
- 前端学习(284):纯css实现翻书效果
- 微服务技术发展的现状与展望
- Jmeter VS LoadRunner
- 交换机 链路层无法udp通讯_一文读懂计算机底层网络原理,包括TCP、UDP、header,什么是包、帧、段等关键问题...
- 关于2017年总结及2018年计划
- 搭建高可用 RocketMQ 集群
- linux下ssh/sftp配置和权限设置
- Inkscape将位图转换为矢量图
- Vulkan学习(三):小结
- java题目练习笔记,java 20道、数量关系8道、判断推理8道、智力题8道
- 计算机卡住了怎样恢复,电脑经常死机,教您电脑经常死机怎么修复
- Tomcate安装配置
- OBS更改标题?标题一改,安能辨我是雌雄?
- memwatch使用笔记
- 走到最后,摩拜连姓名都不能拥有?
- Python字串(string)基础与20种常见操作