0

クロスプラットフォームのオープンソース プロジェクトに取り組んでいます。私のアプリケーションは、Android、iOS、MAC OS X、Windows、および Linux をサポートする予定です。

最初のアイデアは、次のコードを使用することです。

Environment.OSVersion.Platform

しかし、iOS と Android をカバーできないので、それだけでは不十分です。OSの種類を決めるには、OSのベースとバージョンを確認した方が良いと思います。たとえば、iOS は UNIX ベースのオペレーティング システムです。そのため、バージョンまたはその他のプロパティをチェックして、それが iOS であることを確認できます。

私は Android または iOS にアクセスできず、検索がうまくいかなかったので、各 OS のこれらのバージョンを取得するためにあなたの助けが必要です.

敬具、 ペイマン・モルタザヴィ

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 に答える