@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);Dialog dialog = new AlertDialog.Builder(Cockhorse.this)
.setTitle("系统更新")
.setMessage("发现新版本,请更新!")
// 设置内容
.setPositiveButton("确定",// 设置确定按钮
new DialogInterface.OnClickListener() {@Override
public void onClick(DialogInterface dialog,
int which) {
pBar = new ProgressDialog(Cockhorse.this);
pBar.setTitle("正在下载");
pBar.setMessage("请稍候…");
pBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
downFile("http://192.168.1.103:80/gzzd/androidapk/飞哥.apk");
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// 点击"取消"按钮之后退出程序}
}).create();// 创建
// 显示对话框
dialog.show();
// new Thread(new MyThread()).start();
}void downFile(final String url) {
pBar.show();
new Thread() {
public void run() {
HttpClient client = new DefaultHttpClient();
// params[0]代表连接的url
HttpGet get = new HttpGet(url);
HttpResponse response;
try {
response = client.execute(get);
HttpEntity entity = response.getEntity();
long length = entity.getContentLength();
InputStream is = entity.getContent();
FileOutputStream fileOutputStream = null;
if (is != null) {File file = new File(
Environment.getExternalStorageDirectory(),
"Cockhorse.apk");
fileOutputStream = new FileOutputStream(file);byte[] buf = new byte[1024];
int ch = -1;
int count = 0;
while ((ch = is.read(buf)) != -1) {
fileOutputStream.write(buf, 0, ch);
count += ch;
if (length > 0) {}
}
}
fileOutputStream.flush();
if (fileOutputStream != null) {
fileOutputStream.close();
}
down();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}void down() {
handler.post(new Runnable() {
public void run() {
pBar.cancel();
update();
}
});
}void update() {
Intent intent = new Intent(Intent.ACTION_VIEW);
// intent.setDataAndType(Uri.fromFile(new
// File("/sdcard/Feige.apk")),
// "http://192.168.1.103:80/gzzd/androidapk/Feige.apk");
intent.setDataAndType(Uri.fromFile(new File("/sdcard/飞哥.apk")),
"application/vnd.android.package-archive");
startActivity(intent);
}

//注意:APK必须通过数字签名才可以

Android 在线升级APK相关推荐

  1. android 在线升级apk,Android 在线升级APK

    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC ...

  2. 【Android】轻松实现 APK 在线升级

    [Android]轻松实现 APK 在线升级 APK 在线升级 APK 在线升级几乎是所有程序必备的功能. 在线升级功能能解决已有的问题并提供更丰富的新功能. 基本的流程是: 检测到新版本信息 弹出升 ...

  3. Android 7.1 车机 Android 系统 在线升级,将安装到下载到/data/目录下面

    最近按项目要求,需要做一个车机Android在线升级操作,但是cache内存太小了,最后只能寄存希望在 data/文件夹下,但是data/目录在6.0之后禁止recovery读取data文件.最后的解 ...

  4. Android 7.1 车机 下载 Android 系统 在线升级,将安装包放到/data/下进行升级

    最近按项目要求,需要做一个车机Android在线升级操作,但是cache内存太小了,最后只能寄存希望在 data/文件夹下,但是data/目录在6.0之后禁止recovery读取data文件.最后的解 ...

  5. Android studio在线升级

    android studio2.3.3如何在线升级到Android studio3.0而无需手动下载再升级呢?升级Android studio3.0的方法很简单,只需要按照如下操作即可. 1:打开an ...

  6. 海美迪盒子android升级包,海美迪TT盒子系统升级教程 在线升级超便捷

    原标题:海美迪TT盒子系统升级教程 在线升级超便捷 海美迪TT盒子支持本地升级与在线升级两种方式,在线升级对于用户来说很是便捷,系统将会自动提示有新系统版本,用户仅需根据提供操作即可,升级系统后,海美 ...

  7. 无懈可击 Android 内部升级

    code小生,一个专注 Android 领域的技术平台 公众号回复 Android 加入我的安卓技术群 作者:码农一颗颗 链接:https://www.jianshu.com/p/ebc5b4a3d2 ...

  8. android在线播放音乐

    2019独角兽企业重金招聘Python工程师标准>>> android在线音乐 一种方法是调用android自带的播放器 //调用系统自带播放器Intent intent = new ...

  9. android 应用升级sdk版本号,Bugly Android 应用升级 SDK 常见问题

    Bugly Android 应用升级 SDK 常见问题 最新问题解答更新在github 1. 添加abiFilter之后Android Studio出现已下提示 "NDK integrati ...

最新文章

  1. 各种安卓对话框代码合集
  2. 十分经典的批处理教程
  3. arcsoft panorama maker 6_葫芦娃 本领大——中国邮政将于2020年6月1日发行动画——葫芦兄弟特种邮票...
  4. Hadoop学习记录(4)|MapReduce原理|API操作使用
  5. [机器学习] 二分类模型评估指标---精确率Precision、召回率Recall、ROC|AUC
  6. 土木工程到底有多惨?哭了哭了......
  7. javascript window location
  8. C-order/Fortran-order(Row-/Column-major order)
  9. PIE SDK矢量数据的读取
  10. 访问控制模型(ACL BLP BiBA Clark-Wilson Chinese-wall RBAC ABAC)
  11. 充电书库-study
  12. java io 系列(转载skywang12345)
  13. 新年新气象,90行代码菜鸟用Python制作小姐姐新年日历天气卡,送人太有面子啦!...
  14. Mysql按时间区段(每隔30分钟)统计数据并展示
  15. MySQL Flashback拯救手抖党
  16. 2019总结,2020寄望(没有干货,纯属闲聊)
  17. 【科普】第二章 SIS 系统简介
  18. 测试开发岗 - 常见面试题
  19. ERP中各种乱码处理
  20. Java判断日期格式是否正确

热门文章

  1. ps基本操作以及盒子综合案例、圆角边框、盒子阴影、文字阴影
  2. nodejs gm 中文 linux,nodejs图片处理工具gm用法
  3. paypal pdt php 5.3,opencart经验分享-paypal的配置与PDT Token的获取 | SDT技术网
  4. ssh登录或者scp传文件给远程主机起别名
  5. 【JZOJ 省选模拟】我的朋友们
  6. 一个诡异的iOS bug
  7. matplotlib 的 marker 颜色更改
  8. GD32 SPI0 REMAP设置
  9. 阿里云服务器ECS通用型g5和ECS通用型g6实例区别在哪?如何选择?
  10. 流量红利枯竭是伪命题,VC们全在胡说八道