android kotlin 通过包名启动第三方应用或着启动指定的activity

如果已经启动apk,则直接将apk从后台调到前台运行(类似home键之后再点击apk图标启动),如果未启动apk,则重新启动

代码可以直接使用

//通过包名启动第三方应用
    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
        }

    }
Android应用中,Kotlin是一种常用的现代化编程语言,而Glide是一个流行的图片和视频加载库,常用于显示网络资源,包括视频缩略图。如果你想要使用Glide加载视频缩略图,可以按照以下步骤操作: 1. **添加依赖**:首先,确保在你的`build.gradle`文件中添加Glide的依赖,对于Kotlin项目,可以在`dependencies`块内添加: ```kotlin implementation 'com.github.bumptech.glide:glide:4.12.0' kapt 'com.github.bumptech.glide:compiler:4.12.0' ``` 这里的`kapt`是用于处理注解处理器。 2. **初始化Glide**:在应用启动时,你需要初始化Glide实例: ```kotlin GlideApp.with(this).apply { // this通常是指ActivityFragment configure().imageDecodeOptions(DecodingOptions.newBuilder() .diskCacheStrategy(DiskCacheStrategy.ALL) .build()) } ``` 3. **加载视频缩略图**:你可以创建一个函数来获取并加载视频缩略图: ```kotlin fun loadVideoThumbnail(videoUrl: String, target: ImageView) { Glide.with(target.context) .load(videoUrl) .asBitmap() // 如果你想加载位图 .placeholder(R.drawable.placeholder_image) // 缺省加载时显示的占位图 .error(R.drawable.error_image) // 加载失败时显示的错误图片 .into(target) } ``` 在这个函数里,你需要传入视频URL以及要显示缩略图的目标ImageView。 4. **调用加载函数**:当你需要在UI上展示某个视频的缩略图时,只需调用上述函数,并传递对应的视频链接和控件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值