Android dostal režim hostitele USB ve verzi 3.1, Google ho výrobcům telefonů neukládá
Rozhraní, které aplikaci dovolí mluvit s připojenou klávesnicí nebo diskem, vydal Google 10. května 2011 v Androidu 3.1. Hned u něj napsal, že jestli to půjde, rozhoduje řadič v telefonu, ne verze systému – a v definici kompatibility pro Android 16 je režim hostitele pořád jen doporučení. Symbian na Nokii N8 to zvládal o sedm měsíců dřív.
Zapojit do telefonu flash disk nebo klávesnici je dnes úkon na dvě sekundy: adaptér, disk, správce souborů. Aby to šlo, musí se telefon postavit do role hostitele sběrnice – napájet ji a sám zjistit, co je na druhém konci. Rozhraní, kterým může aplikace s takto připojenou věcí mluvit, dostal Android až ve verzi 3.1, kterou Google vydal 10. května 2011.

Dva režimy, dva držitelé napájení
Dokumentace Androidu dělí připojenou techniku podle toho, kdo sběrnici napájí. V režimu hostitele, anglicky USB host, je hostitelem telefon a na druhém konci visí myš, klávesnice, fotoaparát nebo herní ovladač. V režimu příslušenství, USB accessory, je to obráceně: hostitelem je připojený přístroj – dokovací stanice, čtečka karet, kiosek, hudební nebo diagnostické vybavení – a telefon si od něj bere proud. Druhý režim vznikl právě pro přístroje, které na roli hostitele nemají hardware.
Rozhraní přišlo s tabletovou verzí
Android 3.1 nese úroveň rozhraní 12 a v kódu se jmenuje HONEYCOMB_MR1. Přehled jeho novinek vypisuje nový balíček android.hardware.usb: ústřední třídu UsbManager, k tomu UsbDevice a UsbAccessory pro obě strany spojení, UsbInterface s UsbEndpoint pro rozhraní a koncové body, UsbDeviceConnection a UsbRequest na přenos dat. Systém k tomu rozesílá oznámení, když se něco připojí nebo odpojí. Ve stejné verzi přibylo rozhraní MTP/PTP na správu souborů v připojeném fotoaparátu a podpora myší, trackballů, joysticků a gamepadů.
Oznámení na blogu pro vývojáře z téhož dne mluví o přírůstkové verzi, která staví na prostředí uzpůsobeném tabletům. U režimu hostitele je hned v odrážce výhrada: na přístrojích, které ho podporují, můžou aplikace spravovat připojené periferie. Aby se aspoň druhý režim dostal dál, Google ho zpětně doplnil do Androidu 2.3.4 jako nepovinnou knihovnu v Google APIs Add-On a prvním telefonem s ní byl Nexus S. Režim hostitele ta knihovna nepodporuje vůbec.
Aplikace, která chce s periferií mluvit, musí podle návodu k rozhraní ohlásit v manifestu vlastnost android.hardware.usb.host a mít minSdkVersion alespoň 12. Když k té vlastnosti připíše, že ji vyžaduje, poslouží jako filtr v Obchodu Play a telefonům bez podpory se aplikace vůbec nenabídne.
Věta, která se za patnáct let nezměnila
Přehled novinek v 3.1 varuje hned pod výčtem tříd: zásobník USB je sice součástí systému, ale jestli konkrétní přístroj režim hostitele a otevřeného příslušenství zvládne, rozhodují jeho výrobci – a režim hostitele podle téhož odstavce závisí na vhodném řadiči USB v přístroji. Dnešní přehledová stránka obou režimů, naposledy upravená 26. února 2026, to opakuje jednou poznámkou: podpora nakonec závisí na hardwaru přístroje bez ohledu na verzi systému. Obě věty jsou náš překlad.
Nezůstalo to u dokumentace pro vývojáře. Definice kompatibility pro Android 16, tedy soupis toho, co musí výrobce splnit, aby mohl systém nazvat Androidem, vede v oddílu 7.7 obě věci jako SHOULD, tedy doporučení: má-li přístroj port USB, měl by zvládat režim periferie a měl by zvládat režim hostitele. Povinnosti začínají teprve ve chvíli, kdy se výrobce rozhodne režim hostitele zapnout. Pak musí rozhraní opravdu implementovat, ohlásit vlastnost android.hardware.usb.host a umožnit připojení běžných periferií – a nesmí k telefonu přiložit adaptér, který z portu typu A nebo micro-AB dělá zdířku typu C.
Táhnou to i sluchátka
Na režimu hostitele visí víc než flash disky. Táž definice ukládá telefonu, který má port s režimem hostitele, implementovat třídu USB audio – právě po ní sahají drátová sluchátka do USB-C. Sluchátkový jack začal z telefonů vypadávat v roce 2016, takže dneska hudbu z drátu přehrává rozhraní, které systém původně dostal na myši a flash disky. Ke stejné rodině patří přenos MIDI: kdo hlásí, že ho telefon podporuje, musí ho umět po všech sběrnicích, kde má obecné připojení, a režim hostitele je mezi nimi jmenovaný. Profesionální zvuk jde ještě dál – přístroj, který se hlásí vlastností android.hardware.audio.pro, musí mít port s režimem hostitele i periferie naráz.
Symbian to zvládal o sedm měsíců dřív
Nokia začala rozesílat N8 podle své tiskové zprávy z Espoo 29. září 2010, nejdřív lidem s předobjednávkou. Byl to její první přístroj se Symbianem^3. Recenze All About Symbian, kterou Steve Litchfield vydal 10. listopadu 2010, popisuje USB On-The-Go u všech nových přístrojů se Symbianem^3, jen adaptér CA-157 dostal do balení pouze N8. Nokia k tomu rozšířila otvor portu micro USB na tvar Micro-AB, aby se do něj vešel hranatější konektor adaptéru; ten používá čtvrtý, v micro USB nevyužitý vývod jako identifikační, takže telefon adaptér poznal hned po zapojení. Po několika sekundách se obsah disku objevil ve správci souborů a dostal písmeno, obvykle od G:.
Dvě omezení té doby stojí za připomenutí. Symbian čte jen FAT32, takže disky s NTFS nebo HFS zůstaly nepřečtené, a proud z telefonu stačil na flash disky, ne na pevné disky bez vlastního zdroje. Klávesnice fungovala v textových polích a myši šlo i kolečko. Recenzent zkusil ze zvědavosti rozbočovač se třemi kartami naráz – všechny se připojily, jen rychlost už za nic nestála.
Táž recenze mimochodem připomíná, že rozšířený konektor nebyl v mobilech novinka: označuje ho za obdobu systému extUSB, tedy mini USB s několika vývody navíc, které pro svoje telefony používalo HTC.
Ve specifikaci to nenajdete
Že se flash disk v telefonu s Androidem stane běžnou věcí, je vidět i z dokumentace Androidu 6.0 z roku 2015: v pasáži o přijímání vnějších úložišť radí vývojářům, jak si tu funkci vyzkoušet právě na disku připojeném kabelem USB On-The-Go. Definice kompatibility dnes k tomu doporučuje, aby telefon v režimu hostitele připojenou periferii i napájel, a přístroji s protokolem MTP ukládá zpřístupnit obsah přes Storage Access Framework – snímky z připojeného fotoaparátu se tak dají vybrat v běžném dialogu pro výběr souboru.
Kolik z toho konkrétní telefon udělá, se ale z tabulky parametrů nepozná podle verze systému. Rozhoduje port a jeho řadič, a to je po patnácti letech přesně ta podmínka, kterou Google napsal do dokumentace v květnu 2011.
Zdroje
- Android 3.1 APIs – přehled novinek verze 3.1, developer.android.com
- USB host and accessory overview a USB host overview, developer.android.com
- Android 3.1 Platform, New SDK tools, Android Developers Blog, 10. 5. 2011
- Android 6.0 APIs, oddíl Adoptable Storage Devices, developer.android.com
- Android 16 Compatibility Definition, oddíly 2.2.1 a 7.7, source.android.com
- Nokia N8: part 6 – Cutting edge technology, Steve Litchfield, All About Symbian, 10. 11. 2010
- Nokia N8 starts shipping worldwide s plným zněním tiskové zprávy Nokie, TechCrunch, 29. 9. 2010