Android 下载安装应用APK封装(适配8.0)

一、简介

二、效果预览

​三、实现步骤

四、功能解析

五、Demo地址

六、内容推荐


一、简介

嘿嘿,这周没缺席,继续给大伙们提供一个工具类。用于下载APK,安装应用。几乎每个APP都带有这个功能,通过链接下载APK后,进行安装升级应用。如果要自己重新写的话 ,可能要花半个或一个多小时。不过写过一遍后,下次实现起来就简单许多了。所以嘛,作者就做了这个简单封装类。你们只需CP,不说三分钟搞定,但也可以少走很多弯路。

二、效果预览

话再多,还不如先看看效果。适不适合自己的胃口,好吃的话可以点个赞。

​三、实现步骤

(1)检查权限/申请权限

这里使用LinPermission个人封装的权限工具类,这里就不解释了,不是本章主要内容。你们可以使用自己的权限进行替换。

(2)提示更新

可以使用Dialog,也可以使用作者封装好的LinCustomDialogFragment

(3)调用工具类进行下载安装

//1.检查存储权限  
if (LinPermission.checkPermission(activity, 7)) {
    //2.弹窗提示 
    LinCustomDialogFragment.init().setTitle("发现新版本")
        .setContent("是否更新?")
        .setType(LinCustomDialogFragment.TYPE_CANCLE)
        .setOnClickListener(new LinCustomDialogFragment.OnSureCancleListener() {
            @Override
            public void clickSure(String EdiText) {
                //3.下载安装
                LinDownloadAPk.downApk(activity, Constants.InstallApk);
            }

            @Override
            public void clickCancle() {
            }
         }).show(getFragmentManager());
} else {
    //申请存储权限
    LinPermission.requestPermission(activity, 7);
}
LinDownloadAPk.class
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Environment;
import android.provider.Settings;
import android.support.annotation.RequiresApi;
import android.support.v4.content.FileProvider;
import android.view.View;
import android.widget.RemoteViews;
import android.widget.Toast;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.net.URL;
import blcs.lwb.lwbtool.R;

/**
 * 下载工具类(开发中一般用于APK应用升级)
 */
public class LinDownloadAPk
{
	private static int FILE_LEN = 0;
	private static RemoteViews mNotifiviews;
	public static String APK_UPGRADE = Environment
			.getExternalStorageDirectory() + "/DownLoad/apk/BLCS.apk";
	private static PendingIntent nullIntent;
	private static Context mContext;

	/**
	 * 判断8.0 安装权限
	 */
	public static void downApk(Context context, String url) {
		mContext = context;
		if (Build.VERSION.SDK_INT >= 26) {
			boolean b = context.getPackageManager().canRequestPackageInstalls();
			if (b) {
				downloadAPK( url, null);
			} else {
				//请求安装未知应用来源的权限
				startInstallPermissionSettingActivity();
			}
		} else {
			downloadAPK( url, null);
		}
	}

	/**
	 * 开启安装APK权
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值