我写了一个记录器类,当我的应用程序出现异常时,它会通过电子邮件发送给我,但是我想知道设备的型号是什么引发了异常。例如:
Logger.LogError(App.ApplicationName, Device.OS.ToString(), "Error getting passenger ancillary transactions!", Settings.CurrentUsername, ex.ToString());
使用应用程序的名称发送包含例外的电子邮件,以及设备是" Android"或者" iOS",但没有比这更具体。在Visual Studio中,它说明我要调试哪个设备(例如" iPod Touch"或" LG LS991")。有没有办法访问这些信息?我在Xamarin文档中找不到任何内容。
答案 0 :(得分:9)
Xamarin.Plugins
由jamesmontemagno在Xamarin.Forms
内跨平台工作:
您将寻找DeviceInfo
插件:
https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/DeviceInfo
/// <summary>
/// Get the model of the device
/// </summary>
string Model { get; }
/// <summary>
/// Get the version of the Operating System
/// </summary>
string Version { get; }
Returns the specific version number of the OS such as:
iOS: 8.1
Android: 4.4.4
Windows Phone: 8.10.14219.0
WinRT: always 8.1 until there is a work around
/// <summary>
/// Get the platform of the device
/// </summary>
Platform { get; }
Returns the Platform Enum of:
public enum Platform
{
Android,
iOS,
WindowsPhone,
Windows
}
答案 1 :(得分:4)
刚刚完成SushiHangover的回答: 在iOS上,Model属性不包含完整的型号名称(例如,您无法区分iPhone 3和iPhone 4)。
幸运的是,这里是some code,它会为你提取它。