我正在开发一个跨平台的开源项目。我的应用程序将支持Android,iOS,MAC OS X,Windows和Linux。
第一个想法是使用以下代码:
Environment.OSVersion.Platform
但这还不够,因为我无法覆盖iOS和Android。我认为最好检查操作系统基础和版本以决定操作系统类型。例如iOS是基于UNIX的操作系统。所以我可以检查版本或其他一些属性,以确保它是iOS。
由于我无法访问Android或iOS而我的搜索不成功,因此我需要您的帮助才能为每个操作系统获取这些版本。
真诚的,你的, Peyman Mortazavi
答案 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
做的