Xamarin 中是否有 PackageManager.GetPackageInfo(PackageName, 0) 的替代品?

Jim*_*cox 2 c# android xamarin.android xamarin

我有一个 Xamarin Android 应用程序,我需要在其中检查 VersionName。这是函数调用:

var appVersion = PackageManager.GetPackageInfo(PackageName, 0).VersionName;
Run Code Online (Sandbox Code Playgroud)

它一直运行良好。在最新的 Android 操作系统更新中,函数调用突然被弃用了。我不想使用 Xamarin Essentials。这样做迫使我使用旧的 Nuget 包。有谁知道未来在 Xamarin 中获取版本名称的首选方法是什么?

谢谢,吉姆

小智 5

你需要:

if (Build.VERSION.SdkInt >= BuildVersionCodes.Tiramisu)
       packageInfo = packageManager.GetPackageInfo(packageName, PackageManager.PackageInfoFlags.Of(0));
else
    {
       #pragma warning disable CS0618 // Type or member is obsolete
       packageInfo = packageManager.GetPackageInfo(packageName, 0); 
       #pragma warning restore CS0618 // Type or member is obsolete
   }
    
if (packageInfo != null)
   versionName = packageInfo.VersionName;
Run Code Online (Sandbox Code Playgroud)