检测不同的操作系统和平台

时间:2012-05-09 15:20:05

标签: c# mono operating-system cross-platform platform

我正在开发一个跨平台的开源项目。我的应用程序将支持Android,iOS,MAC OS X,Windows和Linux。

第一个想法是使用以下代码:

Environment.OSVersion.Platform

但这还不够,因为我无法覆盖iOS和Android。我认为最好检查操作系统基础和版本以决定操作系统类型。例如iOS是基于UNIX的操作系统。所以我可以检查版本或其他一些属性,以确保它是iOS。

由于我无法访问Android或iOS而我的搜索不成功,因此我需要您的帮助才能为每个操作系统获取这些版本。

真诚的,你的, Peyman Mortazavi

2 个答案:

答案 0 :(得分:4)

这个怎么样?

public static bool IsAndroid {
   get {
      return (Type.GetType("Android.Runtime") != null);
   }
}

也许:

public static bool IsIphoneOS {
   get {
      return (Type.GetType("MonoTouch.Constants") != null);
   }
}

我认为这些只适用于MonoTouch或Mono for Android,但您可以使用相同的方法。要么是依赖于构建平台的正确#define值,要么依赖它们。

答案 1 :(得分:-1)

我喜欢为我这样做的跨平台功能。目前,我必须使用ifdefs in创建一个函数,并在每个函数中调用特定的平台API调用。

#ifdef Q_WS_MACX
 return "MAC";
#else
 return "LINUX";
#endif

显然我是用C ++ Qt

做的