判断网络连接
fun netState(context: Context): Boolean { val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val info = cm.activeNetworkInfo if (info != null) { return info.isAvailable } else { return false } }
1.获取到本地已安装的apk版本信息
fun getVersion(context: Context): String? { val manager: PackageManager = context.packageManager//获取文件中的所有信息 val packgerInf: PackageInfo = manager.getPackageInfo(context.packageName, 0) return packgerInf.versionName//b版本号 }
2.网络获取服务器的版本号
使用json上传versionCode服务器判断版本是否相同并返回结果
3.下载apk
使用XUtills第三方下载框架实现下载
val downLoad = DownLoadUtils()
downLoad.downapk()//
4.安装
//隐式意图开启安装apk fun installApk(activity: Activity) { var intent = Intent("android.intent.action.VIEW") intent.addCategory("android.intent.category.DEFAULT") //val file = File("/mnt/sdcard/test/test.apk") // 更新的apk缓存的位置 intent.setDataAndType(Uri.fromFile(File("/ mnt/sdcard/test/test.apk")), "application/vnd.android.packgr-archive") activity.startActivityForResult(intent, 0) }