PackageUtils (Android 中 PackageInfo 的 工具类)

本文介绍了一款针对Android开发的Kotlin版本包管理器工具类封装,它封装了包管理器的常用方法,如获取应用版本号、版本名称、Activity信息、应用信息、授权权限及应用权限等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天,忽然想要将之前经常使用 的Package 信息工具类封装一下,所以,在这里给大家提供一下子

/**
 * kotlin 版本的 包管理器
 *      注意: 此包管理器只是截取 Android 中包管理器的常用方法进行封装的
 */
class PackageUtils {

    companion object {
        var packageInfo: PackageInfo? = null


        fun getPackageInfo(context: Context): PackageInfo {
            if (packageInfo == null) {
                val pm = context?.packageManager
                packageInfo = pm?.getPackageInfo(context?.packageName, 0) as PackageInfo
            }
            return packageInfo as PackageInfo


        }

        /**
         *  获取应用的版本号
         */
        @RequiresApi(Build.VERSION_CODES.P)
        fun getVersionCode(context: Context): Long {
            return getPackageInfo(context).longVersionCode
        }

        /**
         * 获取应用的版本名称
         */
        fun getVersionName(context: Context): String {
            return getPackageInfo(context).versionName
        }

        /**
         * 获取Activity 的信息的集合 可以从 ActivityInfo 获取 到该 Activity 的信息,如 theme 主题 ,lable 图标等
         */
        fun getActivityInfos(context: Context): Array<ActivityInfo> {
            return getPackageInfo(context).activities
        }

        /**
         * 获取 application 的应用信息,包括这个 app 的 application 标签下的所有的内容
         */
        fun getApplicationInfo(context: Context): ApplicationInfo {
            return getPackageInfo(context).applicationInfo
        }

        /**
         * 获取授权的权限的集合
         */
        fun getRequestedPermissions(context: Context): Array<String> {
            return getPackageInfo(context).requestedPermissions
        }

        /**
         * 获取此应用权限的集合
         */
        fun getPermissions(context: Context): Array<PermissionInfo> {
            return getPackageInfo(context).permissions
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值