`
soboer
  • 浏览: 1358034 次
文章分类
社区版块
存档分类
最新评论

Android 在线升级APK

 
阅读更多

@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

    当我们提到"android 系统升级apk"时,通常指的是更新现有设备上的应用程序或操作系统版本的过程。下面将详细讨论这个过程涉及的关键知识点。 1. **APK结构**: APK文件的组成包括: - `AndroidManifest.xml`: 这...

    android应用下载安装apk升级版本实现demo适配Android10

    本示例“android应用下载安装apk升级版本实现demo适配Android10”聚焦于如何在Android 10(API级别29)及更高版本中实现这一过程。以下是关于这一主题的详细知识: 1. **安全下载APK**:在Android 10中,为了保障...

    安卓在线升级apk

    在线升级APK是指通过网络下载新版本的APK文件并自动或手动安装,以更新应用到最新版本。这种方法可以确保用户始终运行的是开发者发布的最新、最稳定的应用程序。下面将详细阐述安卓在线升级APK的相关知识点。 1. **...

    android apk 在线升级原型

    在Android平台上,APK在线升级是一种常见的应用更新方式,它允许用户无需通过Google Play或其他应用商店,直接在应用内部完成更新过程。这个过程涉及到多个关键步骤和技术,包括版本控制、下载管理、安装权限以及...

    Android 7.0下载安装APK

    本文将详细讲解如何在Android 7.0设备上下载并安装APK应用,以及在这个版本中与APK安装相关的知识点。 1. **APK 文件**:APK 是 Android 应用程序的安装包,类似于 Windows 上的 .exe 文件。它包含了应用的代码、...

    Android7.0下载Apk自动安装

    本教程将详细讲解如何在Android 7.0及更高版本上实现Apk的自动下载与安装,主要基于提供的"InstallAPKDemo"示例项目。 首先,理解Android 7.0的权限管理变化是至关重要的。在之前的版本中,用户在安装应用时会一次...

    android在线升级实现源码

    "android在线升级实现源码"是一个专门用于展示如何在Android应用程序中实现带有进度条的APK在线升级功能的示例代码。这个源码项目名为"ApkLoadDemo",提供了完整的流程和逻辑,供开发者参考学习。 首先,我们需要...

    用于对Android升级包和APK进行签名

    本指南将深入探讨如何使用提供的`sign64.exe`和`sign32.exe`工具对Android升级包(APK)进行签名。 一、Android应用签名的重要性 1. **验证身份**:签名可以确认应用来自哪个开发者,帮助用户识别并信任应用。 2. ...

    android OTA在线升级(升级包下载)

    Android OTA(Over-the-Air)在线升级是一种便捷的设备系统更新方式,允许用户通过网络下载升级包来更新手机或平板电脑的操作系统。这种方式无需通过电脑或其他物理媒介,大大简化了更新流程,提高了用户体验。在本...

    Android2.2自带apk安装器源码

    在Android操作系统中,`PackageInstaller`是核心组件之一,它负责处理APK应用的安装、升级和卸载等任务。这个组件是Android系统的核心服务,它使得用户可以通过各种方式(如通过Google Play或其他第三方市场、通过...

    Windows版本 Android Apk签名工具

    Windows版本的Android Apk签名工具是Android SDK工具包的一部分,它允许开发者使用密钥对APK进行签名。这个工具通常包括`jarsigner`命令行工具和`zipalign`优化工具,它们对于发布高质量的Android应用至关重要。 三...

    Android 无需root实现APK静默安装

    使用Android5.0的环境编译的,不同版本之间,aidl文件可能会有差异,具体还需参照Android...详细参考我的博客文章《Android 无需root实现APK静默安装》:http://blog.csdn.net/yyh352091626/article/details/50533137

    Android apk 强制更新 实现断点续传

    7. **权限管理**:在Android 6.0及以上版本,需要动态申请`WRITE_EXTERNAL_STORAGE`权限,以便将APK文件保存到外部存储。 8. **用户体验**:在实现强制更新时,尽量避免影响用户正常使用应用,比如在后台进行检查...

    android美观实用的在线升级demo

    在Android应用开发中,"在线升级"是一个非常重要的功能,它允许用户无缝地获取应用的最新版本,提高用户体验并确保应用程序的安全性和稳定性。本篇将深入解析基于Android的美观实用在线升级Demo,帮助开发者理解并...

    Android A/B分区OTA系统升级应用层调用UpdateEngine Apk源码

    最近在搞 Android A/B 分区 OTA 升级,开始以为挺简单的一个事,没想到折腾了几天,还好终于搞定!代码调用其实就那么点,但是参数以及权限之类很关键,搬砖过来走不通,我就是卡了2天,一些莫名的错误,没法定位。...

    安装APK文件到Android模拟器

    1. 快速更新设备或手机模拟器中的代码,如应用或 Android 系统升级; 2. 在设备上运行 shell 命令; 3. 管理设备或手机模拟器上的预定端口; 4. 在设备或手机模拟器上复制或粘贴文件? 以下为一些常用的操作: 1. ...

    Android版本更新(检测、升级),检测版本,通过apk路径下载安装包

    但要注意,从Android 6.0(API Level 23)开始,应用需要在运行时请求`INSTALL_EXTERNAL_STORAGE`权限,才能安装来自外部存储的APK。 此外,为了保证安装过程的顺利,需要检查并处理可能出现的问题,如网络中断、...

    Android 备份(提取)apk

    1. 数据安全:备份APK可以防止因手机丢失、刷机或系统升级导致的应用数据丢失。 2. 分享应用:提取APK可以让其他用户安装同一应用,尤其对于未在Google Play或其他官方商店上架的应用。 3. 修改应用:开发者可能需要...

    Android_apk打包签名

    在Android开发过程中,APK打包签名是一个至关重要的环节,它涉及到应用的安全性和可分发性。本文将详细讲解Android APK的打包和签名过程,以及如何使用Eclipse、IntelliJ IDEA等工具进行签名操作。 首先,理解签名...

    Android5.1升级工具

    Android 5.1 升级工具是一款专为Android设备设计的系统更新软件,它使得用户能够方便快捷地将他们的设备从较低版本的Android系统升级到Android 5.1。这个工具通常包含了完整的系统镜像、升级脚本以及必要的驱动程序...

Global site tag (gtag.js) - Google Analytics