Přejít na hlavní obsah

Jak identifikovat operační systém na zařízeních Android a iOS?

  • Naděžda Černá
  • Recenze

Android a iOS - dva nejoblíbenější operační systémy pro mobilní zařízení. Určit, který systém je nainstalován na jednom nebo druhém gadgetu, může být v mnoha případech užitečné. Například při vývoji mobilních aplikací nebo při výběru softwaru kompatibilního s konkrétní platformou.

Pro definování operačního systému na zařízeních Android existuje několik způsobů. Jedním z nejjednodušších je zobrazit informace v nastavení telefonu nebo tabletu. Android poskytuje podrobné informace o nainstalované verzi systému a konkrétním modelu zařízení. Chcete-li to provést, musíte na zařízení otevřít Nastavení, poté vybrat sekci O telefonu nebo tabletu a najít informace o operačním systému.

Na rozdíl od Android, na zařízeních iOS zobrazit informace o systému v nastavení nebude možné. Pro definování operačního systému na zařízeních iOS lze použít JavaScript. Stačí zkontrolovat, zda zařízení má objekt navigator.userAgent. Pokud objekt existuje a obsahuje řetězec "iPhone" nebo "iPad", znamená to, že systém iOS nastavený.

Metody identifikace operačního systému na zařízeních Android a iOS

Při vývoji mobilní aplikace je často nutné identifikovat operační systém zařízení, na kterém je spuštěn. To může být užitečné, pokud chcete poskytnout různé funkce nebo vzhled pro zařízení běžící na různých OS. Níže se podíváme na metody definování operačního systému na zařízeních Android a iOS.

Definice na zařízeních Android

Na Androidu lze definovat operační systém pomocí systémové vlastnosti " ro.build.version.release". Tato vlastnost obsahuje verzi Androidu nainstalovanou v zařízení. Můžete jej získat pomocí objektu třídy Build :

String osVersion = Build.VERSION.RELEASE;

Hodnota proměnné osVersion bude obsahovat verzi Androidu (například "9" pro Android 9.0 Pie).

Definice na zařízeních iOS

Na iOS lze definovat operační systém pomocí třídy UIDevice . K získání verze iOS můžete použít vlastnost systemVersion:

String osVersion = UIDevice.currentDevice.systemVersion;

Hodnota proměnné osVersion bude obsahovat verzi iOS (například "13.3" pro iOS 13.3).

Pomocí výše uvedených metod tedy budete moci identifikovat operační systém na zařízeních Android a iOS a podle toho přizpůsobit svou aplikaci.

Analýza systémových souborů

Na zařízeních Android můžete zkontrolovat soubor " build.prop". Tento soubor obsahuje informace o verzi operačního systému, sestavení zařízení a další systémové možnosti. Pokud soubor " build.prop " je přítomen, lze předpokládat, že zařízení běží se systémem Android.

Zařízení iOS mají soubor."pilist", který ukládá Předvolby systému a informace o verzi operačního systému. Hledání tohoto souboru může naznačovat, že zařízení pracuje se systémem iOS.

Analýza systémových souborů je tedy účinným způsobem, jak definovat operační systém na zařízeních Android a iOS.

Operační systémSoubor pro analýzu
Androidbuild.prop
iOS.pilist

Použití API systému

K definování operačního systému na zařízeních Android a iOS lze použít speciální API poskytovaná samotnými systémy. Každý operační systém má svůj vlastní jedinečný soubor metod a funkcí, kterými lze získat informace o systému.

V případě Androidu lze použít třídu Build, která obsahuje informace o vlastnostech zařízení a operačního systému. Například vlastnost Build.VERSION.SDK_INT vrací verzi Android API, kterou lze použít k definování operačního systému.

Pro definování operačního systému na zařízeních iOS lze použít třídu UIDevice z rámce UIKit. Metoda currentDevice vrací objekt obsahující informace o aktuálním zařízení, včetně operačního systému. Vlastnost systemName vrací název operačního systému.

Příklad použití API na zařízeních Android:

KódPopis
int sdkInt = Build.VERSION.SDK_INT; Získání verze Android API

Příklad použití API na zařízeních iOS:

KódPopis
UIDevice currentDevice = [UIDevice currentDevice]; Získání objektu s informacemi o aktuálním zařízení
NSString *systemName = currentDevice.systemName; Získání názvu operačního systému

Použití API systému umožňuje získat informace o aktuálním operačním systému na zařízeních Android a iOS. To je užitečné pro přizpůsobení aplikací různým operačním systémům a jejich verzím.

Definice unikátních aplikací

Zařízení Android se vyznačují aplikacemi, jako je Obchod Google Play, Mapy Google, YouTube, Google Chrome a další aplikace vyvinuté společností Google. Také zařízení Android mohou mít předinstalované aplikace specifické pro výrobce, jako je Samsung, Huawei nebo Xiaomi.

Zařízení iOS mají zase vlastní sadu aplikací vyvinutých společností Apple, jako je App Store, Safari, FaceTime, iCloud a další.

Je však třeba vzít v úvahu, že uživatel může některé aplikace odinstalovat nebo skrýt, a existuje také možnost instalace aplikací třetích stran, což může zkreslit výsledky analýzy.

Definice operačního systému na zařízeních Android a iOS v přítomnosti jedinečných aplikací tedy může být užitečným indikátorem, ale není zcela spolehlivá a může být doplněna nebo potvrzena jinými způsoby určování.

Kontrola verze jádra

Pro zařízení Android můžete použít příkaz uname-r v aplikaci Terminal Emulator nebo ADB Shell. Vrátí informace o verzi jádra zařízení. Například verze jádra "3.10.65-gfcabbf4" může naznačovat operační systém Android.

Pro zařízení iOS je možné získat informace o verzi jádra pomocí softwarového rozhraní systému. K získání těchto informací lze použít kód Objective-C nebo Swift. Na zařízeních s jailbreakem je však možné použít příkaz uname-r v aplikaci Terminal k získání verze jádra.

Ověření verze jádra je jedním ze způsobů, jak identifikovat operační systém na zařízeních Android a iOS. Tato metoda je zvláště užitečná, když nejsou k dispozici žádné další informace nebo když potřebujete potvrdit data z jiných zdrojů.

Demontáž User-Agent řetězce

Uživatel-Agent řádek v HTTP hlavičce dotazu obsahuje informace o prohlížeči a operačním systému zařízení. Analýza tohoto řádku umožňuje definovat operační systém na zařízeních Android a iOS.

Chcete-li definovat operační systém na zařízeních Android, můžete použít hodnotu "Android" v řádku User-Agent. Například řádek " Mozilla / 5.0 (Linux; Android 11; Pixel 4a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36" Označuje operační systém Android verze 11.

Chcete-li definovat operační systém na zařízeních iOS, můžete v řádku User-Agent použít hodnotu "iPhone" nebo "iPad". Například řádek "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" označuje operační systém iOS verze 14.4.

Všimněte si, že řetězce User-Agent mohou obsahovat další možnosti, jako je verze operačního systému a informace o konkrétním zařízení. Při demontáži tohoto řádku se doporučuje použít příslušné regulární výrazy nebo knihovny k načtení požadovaných informací.

Použití speciálních knihoven

K definování operačního systému na zařízeních Android mohou vývojáři používat knihovny, jako je podpora knihovny Android nebo služby Google Play. Tyto knihovny poskytují různé API, které vám umožní získat informace o verzi operačního systému, typu zařízení a dalších parametrech.

V případě zařízení iOS mohou vývojáři používat knihovny, jako je UIKit nebo CoreFoundation. Tyto knihovny nabídnou různé třídy a funkce pro informace o verzi operačního systému, modelu zařízení a dalších atributech.

Použití speciálních knihoven výrazně zjednodušuje proces identifikace operačního systému na zařízeních Android a iOS. Umožňují vývojářům přístup k různým atributům a funkcím operačních systémů, což může být užitečné při vytváření aplikací běžících na různých platformách.