赞
踩
代码可以直接使用
//通过包名启动第三方应用 fun startLaunchAPK(context: Context, packageName: String,activityName:String) { LogUtils.d(tag,"启动中。。。" +packageName) var mainAct: String? = null val pkgMag = context.packageManager val intent = Intent(Intent.ACTION_MAIN) intent.addCategory(Intent.CATEGORY_LAUNCHER) intent.flags = Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED or Intent.FLAG_ACTIVITY_NEW_TASK //如果已经启动apk,则直接将apk从后台调到前台运行(类似home键之后再点击apk图标启动),如果未启动apk,则重新启动 @SuppressLint("WrongConstant") val list = pkgMag.queryIntentActivities( intent, PackageManager.GET_ACTIVITIES ) for (i in list.indices) { val info = list[i] if (info.activityInfo.packageName == packageName) { mainAct = info.activityInfo.name break } } if (TextUtils.isEmpty(mainAct)) { return } // 启动指定的activity页面 //intent.component = ComponentName(packageName,activityName) //启动到app的主页或启动到原来留下的位置 intent.component = ComponentName(packageName,mainAct!!) //启动app context.startActivity(intent) LogUtils.d(tag,"启动成功。。。") }
//根据包名 判断某APP是否安装 fun checkApkExist(context: Context,packageName: String) :Boolean{ // 检查app是否有安装 if (TextUtils.isEmpty(packageName)) return false try { val info = context.packageManager .getApplicationInfo( packageName, PackageManager.GET_UNINSTALLED_PACKAGES ) // Timber.d(info.toString()) // Timber 是我打印 log 用的工具,这里只是打印一下 log return true } catch (e: PackageManager.NameNotFoundException) { // Timber.d(e.toString()) // Timber 是我打印 log 用的工具,这里只是打印一下 log return false } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。