获取当前应用程序的构建版本 - Xamarin.Android

Tus*_*tel 14 xamarin.android xamarin xamarin.forms

我需要在设置页面中显示应用程序的构建版本.

那么我怎样才能以编程方式获取versionCodeversionNameAndroidManifest.xml文件中获取.

要么

有没有办法以编程方式获取构建版本xamarin.forms.

Mar*_*ván 30

使用依赖服务:

对于iOS:

using Foundation;

[assembly: Xamarin.Forms.Dependency(typeof(Screen_iOS))]

namespace XXX.iOS
{
    public class Screen_iOS : IScreen
    {

        public string Version
        {
            get
            {
                NSObject ver = NSBundle.MainBundle.InfoDictionary["CFBundleShortVersionString"];
                return ver.ToString();
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

对于Android:

using Xamarin.Forms;

[assembly: Dependency(typeof(ScreenAndroid))]

namespace XXX.Droid
{
    class ScreenAndroid : Java.Lang.Object, IScreen
    {

        public string Version
        {
            get
            {
                var context = Forms.Context;
                return context.PackageManager.GetPackageInfo(context.PackageName, 0).VersionName;
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

和界面:

interface IScreen
{
    string Version { get; }
}
Run Code Online (Sandbox Code Playgroud)

  • Forms.Context 已过时。请改用 Android.App.Application.Context。/sf/ask/3314779051/ (2认同)

Par*_*tel 24

对于版本名称:

Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionName
Run Code Online (Sandbox Code Playgroud)

对于版本代码:

Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionCode
Run Code Online (Sandbox Code Playgroud)


Kit*_*zyl 9

Xamarin.Essentials 中,您可以使用以下内容:

Version version = AppInfo.Version;
Run Code Online (Sandbox Code Playgroud)

从那里你可以获得构建版本。

如果你真的只想要内部版本号,你也可以使用快捷方式:

string buildNumber = AppInfo.BuildString;
Run Code Online (Sandbox Code Playgroud)