Android APK 版本更新的下载和安装,支持7.0安装
1:下载APK
2:安装APK
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
dependencies {
compile 'com.github.maning0303:MNUpdateAPK:V1.0.5'
}
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<paths>
<!--升级-->
<external-cache-path
name="mn_update_external_cache"
path="" />
<cache-path
name="mn_update_cache"
path="" />
</paths>
//最新APK的下载地址
public static final String APK_URL = "http://mobile.ac.qq.com/qqcomic_android.apk";
//下载后的APK的命名
public static final String APK_NAME = "update";
new InstallUtils(context, APK_URL, APK_NAME, new InstallUtils.DownloadCallBack() {
@Override
public void onStart() {
Log.i(TAG, "InstallUtils---onStart");
tv_progress.setText("0%");
}
@Override
public void onComplete(String path) {
Log.i(TAG, "InstallUtils---onComplete:" + path);
/**
* 安装APK工具类
* @param context 上下文
* @param filePath 文件路径
* @param authorities ---------Manifest中配置provider的authorities字段---------
* @param callBack 安装界面成功调起的回调
*/
InstallUtils.installAPK(context, path, getPackageName() + ".fileProvider", new InstallUtils.InstallCallBack() {
@Override
public void onSuccess() {
Toast.makeText(context, "正在安装程序", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(Exception e) {
Toast.makeText(context, "安装失败:" + e.toString(), Toast.LENGTH_SHORT).show();
}
});
tv_progress.setText("100%");
}
@Override
public void onLoading(long total, long current) {
Log.i(TAG, "InstallUtils----onLoading:-----total:" + total + ",current:" + current);
tv_progress.setText((int) (current * 100 / total)+"%");
}
@Override
public void onFail(Exception e) {
Log.i(TAG, "InstallUtils---onFail:" + e.getMessage());
}
}).downloadAPK();
/Android/data/包名/cache/
Name | Describe |
---|---|
GankMM | (Material Design & MVP & Retrofit + OKHttp & RecyclerView ...)Gank.io Android客户端:每天一张美女图片,一个视频短片,若干Android,iOS等程序干货,周一到周五每天更新,数据全部由 干货集中营 提供,持续更新。 |
MNUpdateAPK | Android APK 版本更新的下载和安装,适配7.0,简单方便。 |
MNImageBrowser | 交互特效的图片浏览框架,微信向下滑动动态关闭 |
MNCalendar | 简单的日历控件练习,水平方向日历支持手势滑动切换,跳转月份;垂直方向日历选取区间范围。 |
MClearEditText | 带有删除功能的EditText |
MNCrashMonitor | Debug监听程序崩溃日志,展示崩溃日志列表,方便自己平时调试。 |
MNProgressHUD | MNProgressHUD是对常用的自定义弹框封装,加载ProgressDialog,状态显示的StatusDialog和自定义Toast,支持背景颜色,圆角,边框和文字的自定义。 |
MNXUtilsDB | xUtils3 数据库模块单独抽取出来,方便使用。 |
MNVideoPlayer | SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。------代码简单,新手可以看一看。 |
MNZXingCode | 快速集成二维码扫描和生成二维码 |
MNChangeSkin | Android夜间模式,通过Theme实现 |
SwitcherView | 垂直滚动的广告栏文字展示。 |
MNPasswordEditText | 类似微信支付宝的密码输入框。 |
MNSwipeToLoadDemo | 利用SwipeToLoadLayout实现的各种下拉刷新效果(饿了吗,京东,百度外卖,美团外卖,天猫下拉刷新等)。 |