Мне нужно отобразить версию сборки приложения на моей странице настроек.
Итак, как я могу программно получить файлы versionCode
и versionName
из AndroidManifest.xml
.
или
Есть ли способ получить версию сборки программно в xamarin.forms
.
Мне нужно отобразить версию сборки приложения на моей странице настроек.
Итак, как я могу программно получить файлы versionCode
и versionName
из AndroidManifest.xml
.
или
Есть ли способ получить версию сборки программно в 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();
}
}
}
}
Для 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;
}
}
}
}
И интерфейс:
interface IScreen
{
string Version { get; }
}
В Xamarin.Android
вы всегда можете попробовать:
public double GetAppVersion()
{
var info = AppContext.PackageManager.GetPackageInfo(AppContext.PackageName, 0);
return info.VersionCode;
}
а затем вам понадобится инъекция зависимостей, чтобы вызвать этот метод из вашего проекта Xamarin.Forms
.
В Xamarin.Essentials вы можете использовать следующее:
Version version = AppInfo.Version;
Оттуда вы можете получить версию сборки.
Если вам действительно нужен номер сборки, вы также можете использовать ярлык:
string buildNumber = AppInfo.BuildString;