我需要在我的設置頁面中顯示應用的構建版本。獲取當前應用的構建版本 - Xamarin.Android
那麼我怎樣才能以編程方式從AndroidManifest.xml
文件獲得versionCode
和versionName
文件。
或者
有沒有辦法在xamarin.forms
獲得內部版本編程。
我需要在我的設置頁面中顯示應用的構建版本。獲取當前應用的構建版本 - Xamarin.Android
那麼我怎樣才能以編程方式從AndroidManifest.xml
文件獲得versionCode
和versionName
文件。
或者
有沒有辦法在xamarin.forms
獲得內部版本編程。
對於版本名稱:
Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionName
對於版本代碼:
Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionCode
在Xamarin.Android
,你總是可以嘗試:
public double GetAppVersion()
{
var info = AppContext.PackageManager.GetPackageInfo(AppContext.PackageName, 0);
return info.VersionCode;
}
,然後你將需要使用dependency injection從您Xamarin.Forms
項目調用此方法。
與依存性服務:
對於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; }
}
注意,它只是爲我工作,當我用在註冊屬性完整的命名空間,這將是在這種情況下: 總成:依賴(typeof(XXX.Droid.ScreenAndroid))] – bergmeister