Перейти до основного контенту

Як визначити операційну систему на пристроях Android та iOS?

8 хв читання
747 переглядів

Android і iOS - дві найпопулярніші операційні системи для мобільних пристроїв. Визначити, яка система встановлена на тому чи іншому гаджеті, може бути корисно в багатьох випадках. Наприклад, при розробці мобільних додатків або при виборі програмного забезпечення, сумісного з певною платформою.

Для визначення операційної системи на пристроях Android існує кілька способів. Один з найпростіших - подивитися інформацію в налаштуваннях телефону або планшета. Android надає детальну інформацію про встановлену версію системи та конкретну модель пристрою. Для цього потрібно відкрити "налаштування" на пристрої, потім вибрати розділ "про телефон" або "про планшет", і знайти інформацію про операційну систему.

На відміну від Android, на пристроях iOS подивитися інформацію про систему в Налаштуваннях не вийде. Для визначення операційної системи на пристроях iOS можна використовувати JavaScript. Просто необхідно перевірити, чи є на пристрої об'єкт navigator.userAgent. Якщо об'єкт існує і містить рядок "iPhone" або "iPad", то система iOS установлений.

Методи визначення операційної системи на пристроях Android і iOS

Коли розробляєте мобільний додаток, часто виникає необхідність визначити операційну систему пристрою, на якому воно запущено. Це може бути корисно, якщо ви хочете надати різні функціональні можливості або зовнішній вигляд для пристроїв, що працюють на різних ОС. Нижче будуть розглянуті методи визначення операційної системи на пристроях Android і iOS.

Визначення на пристроях Android

На Android можна визначити операційну систему за допомогою системного властивості " ro.build.version.release". Ця властивість містить версію Android, встановлену на пристрої. Ви можете отримати його за допомогою об'єкта класу Build :

String osVersion = Build.VERSION.RELEASE;

Значення змінної osVersion міститиме версію Android (наприклад, "9" для Android 9.0 Pie).

Визначення на пристроях iOS

На iOS можна визначити операційну систему за допомогою класу UIDevice . Ви можете використовувати властивість systemVersion, щоб отримати версію iOS:

String osVersion = UIDevice.currentDevice.systemVersion;

Значення змінної osVersion міститиме версію iOS (наприклад, "13.3" для iOS 13.3).

Таким чином, використовуючи вищезазначені методи, ви зможете визначити операційну систему на пристроях Android та iOS та відповідно адаптувати свою програму.

Аналіз системних файлів

На пристроях Android можна перевірити наявність файлу " build.prop". Цей файл містить інформацію про версію операційної системи, збірці пристрою, а також інші системні параметри. Якщо файл " build.prop " присутній, можна вважати, що пристрій працює під управлінням Android.

Пристрої iOS мають файл".піліст", який зберігає системні налаштування та інформацію про версію операційної системи. Пошук даного файлу може свідчити про те, що пристрій працює під управлінням iOS.

Таким чином, аналіз системних файлів є ефективним способом визначення операційної системи на пристроях Android і iOS.

Операційна системаФайл для аналізу
Androidbuild.prop
iOS.pilist

Використання API системи

Для визначення операційної системи на пристроях Android і iOS можна використовувати спеціальні API, що надаються самими системами. Кожна операційна система має свій унікальний набір методів і функцій, через які можна отримати інформацію про систему.

У випадку з Android можна використовувати Build клас, який містить інформацію про властивості пристрою та операційної системи. Наприклад, властивість Build.VERSION.SDK_INT повертає версію Android API, яка може бути використана для визначення операційної системи.

Для визначення операційної системи на пристроях iOS можна скористатися класом UIDevice з фреймворку UIKit. Метод currentDevice повертає об'єкт, що містить інформацію про поточний пристрій, включаючи операційну систему. Властивість systemName повертає ім'я операційної системи.

Приклад використання API на пристроях Android:

КодОпис
int sdkInt = Build.VERSION.SDK_INT; Отримання версії Android API

Приклад використання API на пристроях iOS:

КодОпис
UIDevice currentDevice = [UIDevice currentDevice]; Отримання об'єкта з інформацією про поточний пристрій
NSString *systemName = currentDevice.systemName; Отримання імені операційної системи

Використання API системи дозволяє отримати інформацію про поточну операційну систему на пристроях Android і iOS. Це корисно для адаптації додатків під різні операційні системи та їх версії.

Визначення за наявністю унікальних додатків

Пристрої Android характеризуються такими програмами, як Google Play Store, Google Maps, YouTube, Google Chrome та інші програми, розроблені Google. Також пристрої Android можуть мати попередньо встановлені програми, специфічні для виробника, такі як Samsung, Huawei або Xiaomi.

Пристрої iOS, у свою чергу, мають власний набір програм, розроблених Apple, таких як App Store, Safari, FaceTime, iCloud та інші.

Однак варто враховувати, що користувач може видаляти або приховувати деякі додатки, а також існує можливість установки сторонніх додатків, що може спотворити результати аналізу.

Таким чином, визначення операційної системи на пристроях Android і iOS за наявністю унікальних додатків може бути корисним індикатором, але не є абсолютно надійним і може бути доповнений або підтверджений іншими способами визначення.

Перевірка версії ядра

Для пристроїв Android можна використовувати команду uname-R у програмі Terminal Emulator або adb Shell. Вона поверне інформацію про версію ядра пристрою. Наприклад, версія ядра "3.10.65-gfcabbf4" може вказувати на операційну систему Android.

Для пристроїв iOS можна отримати інформацію про версію ядра за допомогою програмного інтерфейсу системи. Код на Objective-C або Swift може бути використаний для отримання цієї інформації. Однак, на пристроях з джейлбрейком можна використовувати команду uname-R в додатку Terminal для отримання версії ядра.

Перевірка версії ядра є одним із способів визначення операційної системи на пристроях Android і iOS. Цей метод особливо корисний, коли недоступна Інша інформація або коли потрібно підтвердити дані з інших джерел.

Розбір User-Agent рядки

User-Agent рядок у заголовку запиту HTTP містить інформацію про браузер та операційну систему пристрою. Розбір даного рядка дозволяє визначити операційну систему на пристроях Android і iOS.

Для визначення операційної системи на пристроях Android можна використовувати значення "Android" в User-Agent рядку. Наприклад, рядок " Mozilla/5.0 (Linux; Android 11; Pixel 4a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Mobile Safari / 537.36 " вказує на операційну систему Android версії 11.

Для визначення операційної системи на пристроях iOS можна використовувати значення "iPhone" або "iPad" в User-Agent рядку. Наприклад, рядок "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15e148 Safari / 604.1" вказує на операційну систему iOS версії 14.4.

Зверніть увагу, що User-Agent рядки можуть містити додаткові параметри, такі як Версія операційної системи та інформація про певний пристрій. При розборі даного рядка рекомендується використовувати відповідні регулярні вирази або бібліотеки для вилучення потрібної інформації.

Застосування спеціальних бібліотек

Для визначення операційної системи на пристроях Android розробники можуть використовувати бібліотеки, такі як Android Support Library або Google Play Services. Ці бібліотеки надають різноманітні API, що дозволяють отримати інформацію про версію операційної системи, тип пристрою та інші параметри.

Що стосується пристроїв iOS, розробники можуть використовувати такі бібліотеки, як UIKit або CoreFoundation. Ці бібліотеки запропонують різні класи та функції для отримання інформації про версію операційної системи, модель пристрою та інші атрибути.

Застосування спеціальних бібліотек значно спрощує процес визначення операційної системи на пристроях Android і iOS. Вони дозволяють розробникам отримати доступ до різноманітних атрибутів та функцій операційних систем, що може бути корисним при створенні додатків, що працюють на різних платформах.