2012-05-09 5 views
0

Я работаю над кросс-платформенным проектом с открытым исходным кодом. Мое приложение будет поддерживать Android, iOS, MAC OS X, Windows и Linux.Обнаружение различных операционных систем и платформ

Первая идея заключается в том, чтобы использовать следующий код:

Environment.OSVersion.Platform 

Но этого недостаточно, так как я не могу покрыть IOS и Android. Я думаю, что лучше проверить базу ОС и версию, чтобы выбрать тип ОС. например iOS - это операционная система на базе UNIX. поэтому я могу проверить версию или некоторые другие свойства, чтобы убедиться, что это iOS.

Поскольку у меня нет доступа к Android или iOS, и мой поиск не был успешным, мне нужна ваша помощь, чтобы получить эти версии для каждой ОС.

С уважением, Пеймана Mortazavi

ответ

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 для Android, но вы можете использовать тот же подход. Либо это, либо полагаться на правильные #define значения для вашей платформы сборки.

-1

Я хотел бы перекрестную функцию платформы, что сделал это для меня. В настоящее время мне нужно создать функцию с ifdefs и вызвать вызовы API конкретной платформы в каждом.

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

Очевидно, что я это сделать в C++ Qt

Смежные вопросы