Mixed Apps
Vývoj & technologie

Bluetooth v aplikacích pro Android a iOS

Připojení ke snímači, odemykání zámku nebo tisk účtenek. Ukazujeme naše Bluetooth aplikace a vysvětlujeme, co při vývoji řešíme: podporu Androidu a iOS, starší telefony, výpadky spojení a výběr knihoven.

MAMixedApps26. září 20263 min čtení
  • Bluetooth
  • Android
  • iOS
  • KMP
  • Výběr technologie
Bluetooth v aplikacích pro Android a iOS

Přes Bluetooth může aplikace číst údaje ze snímače, odemykat zámek nebo tisknout účtenky. Při vývoji řešíme připojení k zařízení, přenos dat i to, co se stane při výpadku signálu.

Na začátku ověříme komunikaci s konkrétním zařízením na Androidu a iOS. Díky tomu víme, co hardware umožňuje a jak aplikaci navrhnout.

BLE, nebo Bluetooth Classic?

Bluetooth Low Energy (BLE) se hodí pro snímače, chytré zámky a další zařízení s nízkou spotřebou. Aplikace přes něj může například přijímat naměřené hodnoty nebo poslat příkaz k odemknutí. BLE podporuje Android i iOS. Více o BLE.

Bluetooth Classic najdeme například u starších tiskáren. Tady je potřeba ověřit podporu iPhonu. Tiskárna, která funguje s Androidem přes sériový profil SPP, nemusí fungovat s iOS.

Pro některé příslušenství na iOS se používá rozhraní External Accessory a certifikace MFi od Applu. Běžné BLE zařízení tuto certifikaci nepotřebuje. Konkrétní možnosti zjistíme z dokumentace výrobce a testem připojení. Podpora příslušenství na iOS.

Naše aplikace, které komunikují přes Bluetooth

Bluetooth jsme využili například v těchto projektech:

  • OxiControl — Android. Aplikace se připojuje k pulznímu oxymetru. Zobrazuje saturaci kyslíkem a tep, ukládá měření a upozorňuje na překročení nastavených hodnot.
  • Thermeeno — Android. Přijímá teplotu ze snímačů a ukládá historii měření. Podporuje více snímačů a upozorňuje na delší ztrátu spojení.
  • Star E-key a STAR Smart Master — iOS. Telefon slouží jako elektronický klíč k chytrým klikám a zámkům.
  • Conto Mobile — Android. Pokladní aplikace, ve které jsme přes Bluetooth řešili tisk účtenek.

Aplikace OxiControl s grafem saturace kyslíkem a tepu, připojená přes Bluetooth k pulznímu oxymetru

OxiControl: měření z oxymetru v telefonu a upozornění e-mailem nebo SMS.

Proč na starších Androidech někdy nejde najít zařízení

Na Androidu 6–11 může aplikace při hledání BLE zařízení potřebovat oprávnění k poloze i zapnuté určování polohy. Bez toho nemusí snímač najít, i když je Bluetooth zapnuté. Systém to vyžaduje, protože z okolních Bluetooth zařízení lze odvodit polohu telefonu. Podrobnosti ke starším Androidům.

Na Androidu 12 a novějším používají současné aplikace samostatná oprávnění pro okolní zařízení. Přesné požadavky závisí i na nastavení aplikace. Přehled oprávnění Androidu.

Tyto rozdíly řešíme při vývoji a testování. Uživatel má dostat jasný pokyn: povolit oprávnění, zapnout Bluetooth nebo přiblížit zařízení k telefonu.

Připojení se zamčeným telefonem

Pokud má aplikace měřit i se zamčeným telefonem, potřebujeme to vědět už při návrhu. Android a iOS omezují práci aplikací na pozadí a každý systém má jiná pravidla. Možnosti Androidu, obnovení aplikace na iOS.

U měření je užitečné zobrazit čas poslední přijaté hodnoty a upozornit na přerušení spojení. Pokud snímač umí ukládat data, aplikace je může po opětovném připojení stáhnout.

Proč pro Bluetooth doporučujeme knihovny

Pro BLE komunikaci doporučujeme využít ověřenou knihovnu. Pomáhá s chybami připojení, odesíláním příkazů, příjmem dat a rozdíly mezi verzemi Androidu. Usnadňuje také opakované připojení a řešení výpadků.

Například Nordic Android BLE Library řeší opakované pokusy o připojení, časové limity a chyby při přenosu. Pro hledání zařízení na starších Androidech ji lze doplnit o Android Scanner Compat Library. Další možností pro Android je RxAndroidBle.

Na iOS poskytuje základ pro BLE komunikaci Core Bluetooth. Pro aplikace v Kotlin Multiplatform lze použít například knihovnu Kable a sdílet část komunikace mezi Androidem a iOS.

Knihovnu vybíráme podle zařízení a funkcí aplikace. Obnovení spojení pak nastavíme podle použití: jinak u průběžného měření, jinak u zámku nebo tiskárny. Výsledek vždy ověříme s konkrétním hardwarem.

Více o výběru technologie najdete v porovnání platforem pro vývoj aplikací.

Co nám připravit před vývojem

Pro začátek nám pomůže:

  1. Zařízení pro testování. Konkrétní snímač, zámek, tiskárna nebo jiné příslušenství, se kterým má aplikace komunikovat.
  2. Dokumentace výrobce. Popis komunikace, knihovna nebo ukázkový kód, pokud jsou k dispozici.
  3. Popis použití. Co má aplikace dělat, kolik zařízení připojí a zda má fungovat i se zamčeným telefonem.
  4. Chování při výpadku. Co má aplikace udělat při ztrátě signálu nebo vybití zařízení.

Testovací telefony máme u nás. Nejdřív připravíme jednoduchý prototyp, na kterém ověříme připojení a přenos dat.

Pokud aplikace potřebuje příslušenství, zajistíme také možnost jejího otestování při schvalování v obchodech. Zkušenost s chytrým zámkem popisujeme v článku o schvalování v App Store.

Potřebujete propojit aplikaci se svým zařízením? Napište nám. Ověříme možnosti připojení a navrhneme řešení.

MA
MixedApps

Studio pro návrh a vývoj mobilních aplikací a webů. Píšeme o tom, co sami řešíme s klienty.

Související služba

Kotlin Multiplatform

Vyvíjíme aplikace pro Android a iOS v Kotlin Multiplatform. Sdílená logika, rozhraní podle potřeb projektu a zkušenosti z aplikací IKR-HZS a OK Riders.

Více o vývoji v KMP

Související projekty

iOSStar E-key — náhled projektu

Star E-key

STAR Smart – Master a E-key

Zobrazit projekt →
AndroidEET pokladna Conto Mobile — náhled projektu

EET pokladna Conto Mobile

Aplikace pro vedení elektronické evidence tržeb přímo ve vašem mobilu.

Zobrazit projekt →
AndroidThermeeno — náhled projektu

Thermeeno

Mobilní aplikace Thermeeno je chytrým pomocníkem pro šetrné a správné měření teploty všech členů vaší rodiny.

Zobrazit projekt →

Máte nápad?

Nechte nám vzkaz nebo zavolejte — ozveme se vám obratem a společně probereme, jak ho proměnit v aplikaci nebo web.