首页 > 解决方案 > 如何从任何已安装应用程序的包名称中获取 versionCode?

问题描述

我正在为我的公司创建一个类似游戏商店的应用程序。我已经从我的网络应用程序在我的服务器上上传了 apk。我已经从我的 android 应用程序中的 url 下载了 apk,并提示安装屏幕。现在我想要从 API 获取新版本代码和包名称。我想从包名中获取已安装应用程序的版本代码。如何从我从 API 获得的包名称中获取版本代码?

标签: android

解决方案


所有提供的答案都是正确的。但是,请注意PackageInfo.versionCode在 API 级别 28 中已弃用。请getLongVersionCode改为用于运行 Android Pie 或更高版本的设备,如下所示...

    var info: PackageInfo? = null
    var versionCode: Long? = null

    try {
        info = context?.packageManager?.getPackageInfo(context?.packageName, 0)
        versionCode =
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P)  info?.versionCode?.toLong()
        else info?.longVersionCode 
    }
    catch(e: PackageManager.NameNotFoundException){

    }

推荐阅读