【发布时间】:2017-02-01 05:25:00
【问题描述】:
我需要在我的设置页面中显示应用的构建版本。
那么我如何以编程方式从AndroidManifest.xml 文件中获取versionCode 和versionName。
或者
有什么方法可以在xamarin.forms 中以编程方式获取构建版本。
【问题讨论】:
标签: xamarin xamarin.android xamarin.forms
我需要在我的设置页面中显示应用的构建版本。
那么我如何以编程方式从AndroidManifest.xml 文件中获取versionCode 和versionName。
或者
有什么方法可以在xamarin.forms 中以编程方式获取构建版本。
【问题讨论】:
标签: xamarin xamarin.android xamarin.forms
版本名称:
Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionName
版本代码:
Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionCode
【讨论】:
使用依赖服务:
对于 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();
}
}
}
}
对于安卓:
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;
}
}
}
}
还有界面:
interface IScreen
{
string Version { get; }
}
【讨论】:
在Xamarin.Essentials 中,您可以使用以下内容:
Version version = AppInfo.Version;
您可以从那里获取构建版本。
如果你真的只想要内部版本号,你也可以使用快捷方式:
string buildNumber = AppInfo.BuildString;
【讨论】:
在Xamarin.Android,你总是可以尝试:
public double GetAppVersion()
{
var info = AppContext.PackageManager.GetPackageInfo(AppContext.PackageName, 0);
return info.VersionCode;
}
然后您将需要使用dependency injection 从您的Xamarin.Forms 项目中调用此方法。
【讨论】: