0

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

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

Environment.OSVersion.Platform

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

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

此致,佩曼·莫尔塔扎维

4

2 回答 2

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 值。

于 2012-05-09T21:52:20.853 回答
-1

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

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

显然我在 C++ Qt 中这样做

于 2012-05-09T15:36:08.643 回答