Android 如何从任何已安装应用程序的包名中获取versionCode?
我正在为我的公司创建一个类似play store的应用程序。我已从web应用程序将apk上载到服务器上。我已经从android应用程序的url下载了apk,并提示安装屏幕。现在我想要的是从API中获得新的版本代码和包名。我想从软件包名称中获取已安装应用程序的版本代码。如何从API中获取的包名中获取版本代码?使用此选项Android 如何从任何已安装应用程序的包名中获取versionCode?,android,Android,我正在为我的公司创建一个类似play store的应用程序。我已从web应用程序将apk上载到服务器上。我已经从android应用程序的url下载了apk,并提示安装屏幕。现在我想要的是从API中获得新的版本代码和包名。我想从软件包名称中获取已安装应用程序的版本代码。如何从API中获取的包名中获取版本代码?使用此选项 public Long getVersionNo(String packageName){ PackageInfo packageInfo = null; try
public Long getVersionNo(String packageName){
PackageInfo packageInfo = null;
try {
packageInfo = getPackageManager().getPackageInfo(packageName, 0);
return packageInfo.getLongVersionCode();
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}
将程序包名称传递给此函数,它将返回设备上安装的应用程序的版本号。如果找不到应用程序,它将返回null。试试这个
try {
PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
String version = pInfo.versionName;
int verCode = pInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
List packagesInstalledList=getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);
PackageInfo PackageInfo=context.getPackageManager().getPackageInfo(“com.xyz”,0);
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.P){
long versionCode=packageInfo.getLongVersionCode(packageInfo);
}否则{
long versionCode=packageInfo.versionCode;//在API-28中不推荐使用packageInfo
}
字符串versionName=packageInfo.versionName;
提供的所有答案都是正确的。但是,请注意,PackageInfo.versionCode
在API级别28中已被弃用。对于运行Android Pie或更高版本的设备,请使用getLongVersionCode
,如下所示
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){
}
var信息:PackageInfo?=无效的
变量版本代码:长?=无效的
试一试{
info=context?.packageManager?.getPackageInfo(context?.packageName,0)
版本代码=
if(Build.VERSION.SDK_INT 最好使用PACKEGIN FICOPLATPLS考虑在API级别28中禁止PultAudio.FraveNo.Givig错误“不能解决方法GeGoLoopEngon CODE())确保您的TalkSDKEPDATE是2PLS,考虑PACKEAGIN。版本代码在API级别28中被弃用。它是GIVIG错误“不能解决方法GeGoLoopEngon CODE())。确保您有以下导入导入android.content.pm.PackageInfo;导入android.content.pm.PackageManager代码>
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){
}