无法确定Xamarin Forms应用程序是在模拟器中还是在设备上运行

时间:2016-01-25 03:34:50

标签: c# ios xamarin xamarin.forms

我正在尝试确定该应用是在模拟器中运行还是在硬件(苹果iphone)设备上运行。

各种答案都表明我会做以下事情:

bool isSimulator = MonoTouch.ObjCRuntime.Runtime.Arch ==
    MonoTouch.ObjCRuntime.Arch.SIMULATOR;

我已添加到我的iOS应用AppDelegate.cs文件中。但它确实编译 - 我缺少命名空间或程序集:(

这是一个FULL方法的图片(颜色编码显示它找不到静态属性):

enter image description here

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:7)

使用条款:

using ObjCRuntime;

代码:

bool isSimulator = Runtime.Arch == Arch.SIMULATOR;

仅供参考:MonoTouch名称空间已被弃用(~2012),并已在" Xamarin.iOS"中分解为多个名称空间。产品

答案 1 :(得分:0)

使用UIDevice.CurrentDevice信息的替代方法:

public static class IosHelper
{
    public static bool IsSimulator {
        get {
            return UIDevice.CurrentDevice.Model.EndsWith("Simulator") || UIDevice.CurrentDevice.Name.EndsWith("Simulator");
        }
    }
}

派生自this answer