J'ai besoin d'afficher la version de construction de l'application sur ma page de paramètres.
Alors, comment puis-je obtenir les versionCode
et versionName
de AndroidManifest.xml
fichier par programmation.
Ou
Existe-t-il un moyen d'obtenir la version de build par programme dans xamarin.forms
.
Pour le nom de la version:
Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionName
Pour le code de version:
Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionCode
Avec un service de dépendance:
Pour 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();
}
}
}
}
Pour 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;
}
}
}
}
Et l'interface:
interface IScreen
{
string Version { get; }
}
Dans Xamarin.Android
vous pouvez toujours essayer:
public double GetAppVersion()
{
var info = AppContext.PackageManager.GetPackageInfo(AppContext.PackageName, 0);
return info.VersionCode;
}
puis vous devrez utiliser injection de dépendance pour appeler cette méthode à partir de votre Xamarin.Forms
projet.
Dans Xamarin.Essentials vous pouvez utiliser ce qui suit:
Version version = AppInfo.Version;
De là, vous pouvez obtenir la version de build.
Si vous voulez vraiment juste le numéro de build, vous pouvez également utiliser le raccourci:
string buildNumber = AppInfo.BuildString;