Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android Things
Code

Како да поврзите Android Things и смартфон со помош на Nearby Connections 2.0

by
Difficulty:IntermediateLength:MediumLanguages:

Macedonian (Македонски јазик) translation by Filip Stefanov (you can also view the original English article)

Една од првите работи кои корисниците ќе сакаат да ја направат со новиот паметен домашен уред е да го поврзат на својата безжична мрежа. Многу IoT уреди немаат екран или тастатура, па така, начин како да го направите тоа е да дозволите корисниците да ги спарат смартфонот со уредот за да можат да го контролираат и конфигурираат.  Ова е како работат Nest и Google Home, помеѓу останатите, а Nearby Connections 2.0 API го овозможува тоа.

Google Home companion app connection screen

Во оваа статија ќе добиете вовед во Nearby Connections 2.0 API и како може да се искористи за да спари Android смартфон со Android Things уред, со цел да им помогне на корисниците да го искусат придружничкиот уред.

Што е Nearby Connections API?

Nearby Connections API дозволува два уреди да комуницираат еден со друг директно преку Bluetooth, или безжично, без да се користи централна пристапна точка. Има две улоги кои уредот може да ги превземе: огласник, кој им дава до знаење на другите уреди дека е слободен за поврзување, и откривач, кој се обидува да пронајде огласници и да се поврзе со нив. Кога мноштво од уреди (исто така познати и како „крајни точки“ во оваа фаза) се меѓусебно поврзани, тие можат да испраќаат податоци кон било која друга крајна точка во мрежата на Nearby Connections.

Има две стратегии кои  Nearby Connections API може да ги користи за да поврзува уреди. Првата, P2P_STAR, е наједноставна за работа.  Таа се состои од еден огласник кој може да поддржи повеќе откривачи да се поврзуваат со него. Втората, P2P_CLUSTER, дозволува поврзување кон колкав и да е број на уреди, и да прифаќа конекции од нив, од колкав и да е број на уреди. Ова создава испреплетена мрежа со помалку централизирана точка на неуспех, иако исто така зафаќа повеќе проток. Оваа стратегија е идеална за помали пејлоудови што не треба да минуваат преку централен уред, како што е кај игрите.

Овој туторијал ќе се концентрира на користење на пообичната ѕвезда стратегија за да се конектира со IoT уредот како огласник и ќе го користи смартфонот на корисникот како откривач. Меѓутоа, до крајот, исто така треба да имате доволно информации за да ја воведите и кластер стратегија.

Ајде да се подготвиме!

Ќе има два модули за овој туторијал: мобилната апликација и Android Things апликацијата. Кога тие ќе ги создадете во Android Studio, ќе треба да ја опфатите зависноста на Google Play Services од Nearby Connections во модул-нивото build.gradle фајлот за двете апликации.

Кога ќе ја вклучите gradle синхронизацијата, отворете ги AndroidManifest.xml фајловите за двата модула и опфатете ги следните дозволи вклучени во application јазлите.

На Android Things уредите ќе им бидат доделени овие дозволи во уредот по рестартирањето, иако ќе треба да побарате дозвола за локацијата од корисниците на телефонската апликација.

MainActivity класата и во things и во mobile модулите ќе треба да се воведи во интерфејсот кој се користи за повратните повици во Google Play Services, како во примерот:

Кога веќе ќе валидирате дека корисникот ги има правилните дозволи за локација во onCreate(), можете да започнете со поврзување со Google Play Services за да го користите Nearby Connections API.

Кога GoogleApiClient ќе заврши со поврзување, onConnected() методот ќе биде повикан. Ова е моментот кога ќе започнете со огласен или откривачки процес за вашиот уред. Во надополнение на тоа, и обете апликации ќе бараат service id, кој е уникатен String идентификатор.

Огласување на Nearby Connections

Кога работите со Nearby Connections API, ќе треба да создадете ConnectionLifecycleCallback кој, како што навестува името, ќе биде активиран на разни настани за connection lifecycle. За ова демо, ќе го користиме само onConnectionInitiated() методот. Тоа ќе зачува референца кон првата крајна точка која се обидува да се поврзе со него, да го прифати поврзувањето и да престане со огласување. Ако поврзувањето не е успешно, апликацијата може да го рестартира огласувањето.

Можете да забележите дека горниот метод исто така се навраќа на PayloadCallback објект. Овој објект има методи кои се повикани кога пејлоуд од податоци е испратен од огласникот до крајна точка, исто како и кога податоци се примени од крајна точка.  onPayloadReceived() методот е каде што ќе ракуваме со било какво испраќање на податоци до нашиот Android Things уред.  Овој метод го содржи Payload објектот кој може да се претвори во ревија од бајти, и String кој ја претставува адресата на крајната точка од уредот кој што испраќа.

Во овој момент, можете да започните со огласување на вашиот IoT уред со следниот метод:

Можете да забележите дека ова е моментот кога ја употребуваме P2P_STAR  стратегијата на нашата Nearby Connections мрежа.

Кога ќе сакате да испратите пејлоуд до друг уред, можете да го користите Nearby.Connections.sendPayload() методот со Google API клиентската референца, името на вашата крајна точка и ревија од бајти од податоците кои сакате да ги испратите.

Совет: Вклучете го WiFi-то при рестартирање.

Еден трик кој го открив дека е корисен кога работите со Nearby Connections API на Android Things уред е да го превклучите WiFi-то при рестартирање, бидејќи уредот може да остане со исклучена безжична мрежа ако се исклучи или изгуби струја додека огласува. Можете да го направите ова со повраќање на WiFiManager системски сервис и го повикува setWifiEnabled()

Откријте уреди со Nearby Connections 

Откривањето на уреди следи во главно слична шема како и огласувањето. Уредот ќе се поврзи со Google API Client и ќе започне со откривање. Кога ќе се пронајде огласник, откривачот ќе побара да се поврзи со огласникот.  Ако огласникот го одобри барањето, тогаш двата уреди ќе се поврзат и ќе можат да разменуваат пејлоудови меѓу себе. Откривачот ќе користи PayloadCallback исто како и огласникот.

Откривачот (на мобилната апликација) ConnectionLifecycleCallback исто така ќе изгледа сличен како оној на огласникот:

Она што е различно е тоа што откривачите ќе бараат EndpointDiscoveryCallback кој ќе се користи кога е пронајден огласник, но со кој сеуште се немаат поврзано. Овој објект ќе го започне барањето за поврзување со огласникот.

Кога вашиот откривач веќе ќе се поврзи со Google Play Services, можете да започнете откривање со следнава команда:

За крај, кога ќе сакате да се дисконектирате од огласник, можете да го користите disconnectFromEndpoint() методот од Nearby Connections API. Во главно, добра идеја е да го направите ова во вашиот onDestroy() повратен повик на Activity.

Заклучок

Во оваа статија научивте за Nearby Connections 2.0 API од Android во врска со процесот за создавање на придружничка апликација за Android Things IoT уред.

Не вреди ништо што овој API може да се искористи за било кои Android уреди што сакате да се во мрежа, од телефони и таблети до Android TV boxes и Android Wear паметни часовници. API-то обезбедува едноставен начин да се поврзете и да комуницирате без да користите интернет или централизиран рутер, и додава одлична полезност на вашата колекција од алатки за развој на Android.

Додека сте овде, проверете некои од нашите други објави за развој на Android Things IoT.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.