# MNUpdateAPK
Android APK Update Version APK版本更新的下载和安装,适配7.0-11.0下载安装
[![](https://jitpack.io/v/maning0303/MNUpdateAPK.svg)](https://jitpack.io/#maning0303/MNUpdateAPK)
## 功能:
1:下载APK
2:安装APK
## 截图:
<div align="center">
<img src = "screenshots/mn_updateapk_002.jpg" width=200 >
<img src = "screenshots/mn_updateapk_001.gif" width=200 >
</div>
## 如何添加(请认真读完下面步骤和注意事项)
### Gradle添加:
#### 1.在Project的build.gradle中添加仓库地址
``` gradle
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
```
#### 2.在Module目录下的build.gradle中添加依赖
``` gradle
dependencies {
//AndroidX
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.github.maning0303:MNUpdateAPK:V2.0.5'
//Suport版本,建议升级AndroidX,不更新
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.github.maning0303:MNUpdateAPK:V2.0.3'
}
```
## 使用步骤:
### 1:在Manifest.xml中添加配置
``` gradle
<!--网络权限问题-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--8.0安装需要的权限-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!--读写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--读写权限Android11-->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
```
### 2:代码使用
#### Android 11 适配问题:
##### 1.存储权限需要自行适配
##### 2.安装权限:REQUEST_INSTALL_PACKAGES,11用户授权安装权限后会自动的重启App,所以建议在下载新版本之前优先检查有没有安装权限,就不要再下载完成后检查权限,防止出现需要用户下载两次问题。
#### 本地下载安装:
``` java
//1.先判断有没有安装权限---适配8.0
//如果不想用封装好的,可以自己去实现8.0适配
InstallUtils.checkInstallPermission(context, new InstallUtils.InstallPermissionCallBack() {
@Override
public void onGranted() {
//去下载Apk
downloadApk(...);
}
@Override
public void onDenied() {
//弹出弹框提醒用户
AlertDialog alertDialog = new AlertDialog.Builder(context)
.setTitle("温馨提示")
.setMessage("必须授权才能安装APK,请设置允许安装")
.setNegativeButton("取消", null)
.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//打开设置页面
InstallUtils.openInstallPermissionSetting(context, new InstallUtils.InstallPermissionCallBack() {
@Override
public void onGranted() {
//去下载Apk
downloadApk(...);
}
@Override
public void onDenied() {
//还是不允许咋搞?
Toast.makeText(context, "不允许安装咋搞?强制更新就退出应用程序吧!", Toast.LENGTH_SHORT).show();
}
});
}
})
.create();
alertDialog.show();
}
});
//2.下载APK
InstallUtils.with(this)
//必须-下载地址
.setApkUrl(Constants.APK_URL_01)
//非必须-下载保存的文件的完整路径+/name.apk,使用自定义路径需要获取读写权限
.setApkPath(Constants.APK_SAVE_PATH)
//非必须-下载回调
.setCallBack(new InstallUtils.DownloadCallBack() {
@Override
public void onStart() {
//下载开始
}
@Override
public void onComplete(String path) {
//下载完成
InstallUtils.installAPK();
}
@Override
public void onLoading(long total, long current) {
//下载中
}
@Override
public void onFail(Exception e) {
//下载失败
}
@Override
public void cancle() {
//下载取消
}
})
//开始下载
.startDownload();
//3.安装APK
InstallUtils.installAPK(context, path, new InstallUtils.InstallCallBack() {
@Override
public void onSuccess() {
//onSuccess:表示系统的安装界面被打开
//防止用户取消安装,在这里可以关闭当前应用,以免出现安装被取消
Toast.makeText(context, "正在安装程序", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(Exception e) {
//安装出现异常,这里可以提示用用去用浏览器下载安装
}
});
//取消下载
InstallUtils.cancleDownload();
//是否正在下载
InstallUtils.isDownloading();
//单独设置下载监听
InstallUtils.setDownloadCallBack(new InstallUtils.DownloadCallBack() {
@Override
public void onStart() {
}
@Override
public void onComplete(String path) {
}
@Override
public void onLoading(long total, long current) {
}
@Override
public void onFail(Exception e) {
}
@Override
public void cancle() {
}
});
//安装APK
/**
* 安装APK工具类
* @param activity 上下文
* @param filePath 文件路径
* @param callBack 安装界面成功调起的回调
*/
InstallUtils.installAPK(activity, path, new InstallUtils.InstallCallBack() {
@Override
public void onSuccess() {
//onSuccess:表示系统的安装界面被打开
//防止用户取消安装,在这里可以关闭当前应用,以免出现安装被取消
Toast.makeText(context, "正在安装程序", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(Exception e) {
Toast.makeText(context, "安装失败:" + e.toString(), Toast.LENGTH_SHORT).show();
}
});
```
#### 浏览器下载安装:
``` java
//通过浏览器去下载APK
InstallUtils.installAPKWithBrower(this, APK_URL);
```
### 默认下载路径(支持自定义下载路径):
``` java
/Android/data/包名/cache/
或者
/data/data/包名/cache/
```
## 注意注意注意:
#### 8.0权限问题�
没有合适的资源?快使用搜索试试~ 我知道了~
Android APK Update 版本更新的下载和安装,适配7.0-11.0系统.zip
共63个文件
xml:21个
java:16个
png:5个
需积分: 0 1 下载量 160 浏览量
2024-03-06
11:06:06
上传
评论
收藏 1023KB ZIP 举报
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
Android APK Update 版本更新的下载和安装,适配7.0-11.0系统.zip (63个子文件)
资料总结
gradle.properties 935B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 232B
screenshots
mn_updateapk_001.gif 1021KB
mn_updateapk_002.jpg 48KB
library_update
src
main
java
com
maning
updatelibrary
utils
MNUtils.java 2KB
ActResultRequest.java 1KB
OnActResultEventDispatcherFragment.java 1KB
ActForResultCallback.java 251B
http
ProgressResponseBody.java 2KB
DownloadFileUtils.java 13KB
AbsFileProgressCallback.java 578B
DownloadModel.java 1KB
InstallUtils.java 11KB
MNUpdateApkFileProvider.java 302B
res
xml
mn_update_file_provider.xml 542B
values
strings.xml 70B
AndroidManifest.xml 953B
proguard-rules.pro 681B
build.gradle 730B
.gitignore 7B
app
src
main
java
com
maning
mnupdateapk
utils
PermissionUtils.java 2KB
MyApplication.java 283B
cons
Constants.java 412B
ui
OtherActivity.java 3KB
MainActivity.java 13KB
bean
PgyerAppCheckResultBean.java 4KB
res
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher.png 3KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
values-w820dp
dimens.xml 358B
values
dimens.xml 211B
colors.xml 252B
strings.xml 74B
styles.xml 383B
layout
activity_other.xml 945B
activity_main.xml 3KB
AndroidManifest.xml 1KB
proguard-rules.pro 4KB
gank_mm.jks 1KB
build.gradle 2KB
.gitignore 7B
LICENSE 11KB
gradlew.bat 2KB
build.gradle 538B
.idea
jarRepositories.xml 2KB
codeStyles
Project.xml 3KB
runConfigurations.xml 564B
vcs.xml 180B
caches
gradle_models.ser 111KB
build_file_checksums.ser 589B
misc.xml 4KB
inspectionProfiles
Project_Default.xml 1KB
compiler.xml 170B
modules.xml 632B
gradle.xml 871B
encodings.xml 159B
settings.gradle 35B
gradlew 5KB
.gitignore 126B
README.md 13KB
共 63 条
- 1
资源评论
妄北y
- 粉丝: 9866
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功