Uno platform 利用Uno平台在类库中获取设备信息

Uno platform 利用Uno平台在类库中获取设备信息,uno-platform,Uno Platform,我正在尝试开发一个类库,用于Uno平台应用程序,可以作为NuGet包分发。在代码中,我需要能够提取当前运行代码的设备的各种信息。我已经知道了如何获得屏幕尺寸,但现在我陷入了获取当前操作系统和版本的困境。我见过这样的代码: #如果"__ os=“安卓”; #埃利夫__ os=“ios”; #恩迪夫 但据我所知,类库不支持这一点。我还试用了Xamarin.Essentials的Uno端口来使用DeviceInfo类。不过,我没法让它工作 任何帮助都将不胜感激。我以不同的方式获取操作系统信息。我使用

我正在尝试开发一个类库,用于Uno平台应用程序,可以作为NuGet包分发。在代码中,我需要能够提取当前运行代码的设备的各种信息。我已经知道了如何获得屏幕尺寸,但现在我陷入了获取当前操作系统和版本的困境。我见过这样的代码:

#如果"__
os=“安卓”;
#埃利夫__
os=“ios”;
#恩迪夫
但据我所知,类库不支持这一点。我还试用了
Xamarin.Essentials的Uno端口来使用
DeviceInfo
类。不过,我没法让它工作


任何帮助都将不胜感激。

我以不同的方式获取操作系统信息。我使用以下代码获取操作系统信息:

public static string getOSVersion()
    {
        string osInfo = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily.ToString();
        int dotPosition = osInfo.IndexOf('.');
        string shortOsInfo = osInfo.Substring(0, dotPosition);
        return  shortOsInfo + " " + Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamilyVersion.ToString();
    }

如果你在安卓系统上,它将返回安卓11,在IOS系统上,它将返回IOS 14.4(请记住,版本号可能会有所不同——只是出于示例目的使用它)。我还没有在WASM、UWP、Linux或MacOS上运行过它,但它应该可以工作。希望这对你有帮助

成功了!我可能在尝试使用时被VS中显示的警告欺骗了:Uno0001:Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily未在Uno中实现。谢谢。我很高兴它对你有用!