如何在Xamarin Forms上获取当前的设备模型?

时间:2016-04-18 16:15:34

标签: c# xamarin xamarin.forms

我写了一个记录器类,当我的应用程序出现异常时,它会通过电子邮件发送给我,但是我想知道设备的型号是什么引发了异常。例如:

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文档中找不到任何内容。

2 个答案:

答案 0 :(得分:9)

Xamarin.Plugins由jamesmontemagno在Xamarin.Forms内跨平台工作:

您将寻找DeviceInfo插件:

https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/DeviceInfo

Nuget搜索:' Xamarin和Windows'

的设备信息插件

设备型号

/// <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,它会为你提取它。