Dienst: het gebruik van API -

Google spelen in de buurt van Google play - diensten in verband met het gebruik van API:,,,,,, in de buurt van die 20,,,,,,,,,,, 50.000 aandelen, van dit netwerk te delen, wat tuts + maandag in de programma 's zal worden beperkt tot slechts drie dollar.Niet' niet missen.,, ingevoerd, waarin veel van de API - play - diensten op Google is in de buurt van de API, verband,.In dit kader heeft aan het begin van het jaar 2015, laat je een uitrusting van uw aanvraag als gastheer, en een aantal andere apparatuur verbonden is, op basis van de mededeling, de lokale netwerken (LAN), het gebruik van deze functie omvat in verband met een telefoon naar de androïde - controle van een aanvraag, om De betrokkenheid van de gebruikers veel spelletjes.In deze handleiding zal je leren hoe het netwerk voor het creëren van een meerdere aanvragen voor apparatuur, en hoe de in het kader van de toezending van de gegevens.Deze handleiding werk kan vinden in de github.,, 1.   projecten opgezet, als je je eerste programma op de androïde studio, je zal moeten spelen in de bibliotheek in dienst van je aanvragen.Dus, de volgende regel van de  , build.gradle afhankelijk van node, de dossiers.Op dit moment is de ontwikkeling van een dienst 7.5.0 in de meest recente versie.,, de samenstelling van de Com. Google. De androïde. GGO 's: dienst: 7.5.0 "spelen, als een dienst is opgenomen in uw aanvraag, kan je het  , gebouwd. Gradle,   open, AndroidManifest. XML,.Als gevolg van het gebruik van deze functie van Ian van communicatie, je zal moeten worden opgenomen in de lijst van access_network_state toestemming van je,,.,, < de toestemming voor het gebruik van de naam "de androïde = androïde toestemming. Access_network_state" />,, de volgende, je moet nog een blok, metagegevens, in toepassing van de definitie van een,, - een dienst voor identificatie, zal uw aanvraag, zodat het kan worden gebruikt met dezelfde identificatiecode gevonden reclame.In dit geval, onze diensten identificatiecode wordt gedefinieerd in de strings.xml tutsplus_service_id,,,,,,, < - de naam van de androïde: = "COM. Google in de buurt. De androïde. G. In verband met de robot. Service_id": waarde = "@ string /service_id" />, als je klaar bent. En kennelijk, kun je naar  , Java, de belangrijkste activiteiten.Dit is zullen wij het bereiken van reclame en de klasse gevonden.In de MainActivity, je stuurt ook de controle van de informatie tussen de verschillende apparatuur, in de buurt van de verbinding, om te beginnen met de API, je moet worden vastgesteld in verband met de cliënt de API - en Google.Beginnen met de uitvoering van connectioncallbacks onconnectionfailedlistener,,,, in je klas.Als we bij onze interface, we hebben drie door de API - en nodig, onclicklistener,.,, de verwezenlijking van de uitbreiding van de appcompatactivity googleapiclient.connectioncallbacks, googleapiclient.onconnectionfailedlistener, connections.connectionrequestlistener, connections.messagelistener, connections.endpointdiscoverylistener, view.onclicklistener {...,, laten we nu de leden van een variabele, en we moeten in deze handleiding, is de belangrijkste activiteit, de hogere klasse.   beknopt een zie, zal ik zeggen dat dit soort eenvoudige indeling van de weergave van de informatie door, m, een uitgever, een druk op de knop, en stuurde me.Na de schrapping van de verbinding, de knop, verbonden is of niet, dit hangt af van de structuur en de rol van apparatuur, de staat, dat de informatie.,, zal je zien dat er twee booleaanse aanduiding is verbonden, als gastheer, googleapiclient is verbonden, in de buurt van de verbonden, namelijk het gebruik van API - nodig, en een type verbinding een gehele reeks volgen, zullen we deze API - steun voor particuliere googleapiclient.,, mgoogleapiclient; particuliere kleine mtypespinner; particuliere structuur mstatustext; particuliere knop mconnectionbutton; particuliere knop msendbutton; particuliere m mlistview; particuliere oog - groep msendtextcontainer particuliere uitgevers m;Sendedittext; particuliere ArrayAdapter < snaren > mmessageadapter; particuliere booleaanse mishost; particuliere 布尔道; particuliere string mremotehostendpoint; de privé - lijst < snaren > mremotepeerendpoints = nieuwe snaren arraylist < > (); statische laatste lange connection_time_out = 10000l; statische variabelen [] network_types = {connectivitymanager.type_wifi, connectivitymanager.type_ethernet};,, als heb je ooit met een androïde Google - klassen voor het installeren van programma 's als laatste punt moet bekend zijn.Je moet starten, googleapiclient, en in verband met het onCreate,,.,, mgoogleapiclient = nieuwe googleapiclient. Generator (dit). Addconnectioncallbacks (dit). Addonconnectionfailedlistener (dit). Addapi (nearby.connections_api). (). Voor  ;,,,,,, onStop, we   aan is verbonden, en afgesloten. - de beschermde nietig, onstart () {super. Onstart (); mgoogleapiclient. Verbinding ();} - beschermde nietig onstop () {super. Onstop (); als (mgoogleapiclient!= nul & & mgoogleapiclient. Isconnected () {mgoogleapiclient. Disconnect (, 2);}}.Reclame en de aanvaarding van een in verband met Google, zodra je de interface, je kan beginnen te werken en in de nabijheid van de verbinding.Het eerste deel, gaan we naar de reclame, het toegestaan is, een apparaat om te dragen in verband met de gastheer en het beheer van de communicatie tussen de verschillende peer.Je moet de apparatuur heeft een aanvaardbare - verbinding, en dan bel  , in de buurt. In verband met de startadvertising,  . Met de juiste parameters.Dit zal leiden tot de apparatuur in je Ian reclame is, het kan worden gebruikt voor het ontvangen van andere bij de toepassing van programma 's, en in dit geval in tien seconden time - out, we door reclame.Maar je kan de overdracht van een waarde 0,   propaganda te gaan.In de volgende code,  , isconnectedtonetwork,   is een aanvullende manier is om te controleren of de reclame moet gebeuren.,, C () {als particuliere nietig.Isconnectedtonetwork ()) terug te keren; string "in de buurt van reclame"; in de buurt. Verbonden. Startadvertising (mgoogleapiclient, de naam, de lucht, connection_time_out, dit). Setresultcallback (nieuwe resultcallback < verband. Startadvertisingresult > () {- de leegte onresult (connections.startadvertisingresult resultaten) {als resultaat. Getstatus issuccess () (). (') {mstatustext. SetText reclame ");}}}); particuliere booleaanse isconnectedtonetwork () {} connectivitymanager connmanager = (connectivitymanager) getSystemService (context.connectivity_service); (int networktype:network_types) {neTworkinfo informatie = connmanager. Getnetworkinfo (networktype); als (informatie.= nul & & informatie. Isconnectedorconnecting () {terug waar;}} terugkeer valse;},,,,, als de gastheer van toepassing is de reclame, die zal kunnen ontvangen in verband met de verzoeken van de gewrichten.Wanneer een apparaat probeert contact te maken met de volgende methode zal worden genoemd:,, de leegte onconnectionrequest (serie remoteendpointid, serie remotedeviceid, uiteindelijk remoteendpointname byte. [], de lading), het gebruik van deze methode, en je kan aanvaarden of verwerpen verbonden.De aanvaarding van het verzoek om in de buurt van je naam, acceptconnectionrequest,  . In verband met resultscallback.,,.Dan kun je de uitvoering van een actie of, afhankelijk van het verband met succes worden aanvaard. Bijvoorbeeld, zullen wij in het kort zal het eindpunt van op afstand toe te voegen aan de lijst van aan te houden en de uitzending naar een verbonden peer, deze nieuwe apparatuur is verbonden.Als, om een of andere reden, weet je zeker dat het apparaat niet moeten worden gekoppeld aan je aanvraag, je kan weigeren het door een beroep te doen op de  , in de buurt van rejectconnectionrequest. Verbonden. De leegte,.,, - de onconnectionrequest (serie remoteendpointid, serie remotedeviceid, uiteindelijk remoteendpointname byte. [], de lading) {als (mishost) {in de buurt. In verband met de. Acceptconnectionrequest (mgoogleapiclient, remoteendpointid, lading, dit). Setresultcallback (nieuwe resultcallback < staat > () {@ de leegte onresult (status quo) {als staat. Issuccess ()) {als.Mremotepeerendpoints. Bevat (remoteendpointid)) {mremotepeerendpoints. Toevoeging van (remoteendpointid);} mmessageadapter. Toevoeging van (remotedeviceid + "in verband met de!"); mmessageadapter. Notifydatasetchanged (); sendmessage (remotedeviceid + "in verband met de!"); msendtextcontainer. Setvisibility (view.visible);}}} {}); anders in de buurt. In verband met de rejectconnectionrequest (mgoogleapiclient., remoteendpointid);}},,,,, 3.Ontdekt dat, als de reclame, dat afhankelijk is van googleapiclient   en in verband met de,, met een aanvaardbare netwerken met elkaar verbonden.Je kan door de toepassing van de procedures van de diensten voor   werd gevonden in de buurt van identificatie, begon. In verband met de  . Startdiscovery, methoden, zodat je de uitrusting, apparatuur, dat patroon ontdekt. Als gastheer, nu met een vooraf bepaalde diensten etikettering, reclame, onendpointfound, aanpassing van   terug zal leiden.Opgemerkt moet worden dat deze methode kan worden aangeduid als vaak, als er meer dan een gastheer uitzending.In dat geval, kan je het creëren van een gebruiker in alle beschikbare machine, dus ze kunnen kiezen wat zij willen doen in verband met de dialoog, zoals in dit geval, in een tijd dat wij slechts een gastheer van de reclame, dus zullen we het verzoek onmiddellijk door aan de verbinding met  , in de buurt van sendconnectionrequest verbonden..Als de verbinding is aanvaard of afgewezen door de gastheer, en sendconnectionrequest,   resultaten opnieuw zal worden genoemd.Als de verbinding wordt aanvaard, staat wordt vastgesteld voor het succes van de gastheer, redden we het eindpunt identificatiecode en door die doorgang te sturen.,, die als () {(particuliere nietig.Isconnectedtonetwork ()) terug te keren; StringserviceId = "ja" (r.string.service_id); in de buurt. Verbonden. Startdiscovery (mgoogleapiclient, dienst, 10000l, dit). Setresultcallback (nieuwe resultcallback < staat > () {- de leegte onresult (staat) {als staat. Issuccess () {mstatustext gevonden setText ("anders.");} {logboek. E ("tutsplus", "niet:" + staat. Getstatusmessage ());}}} {-); de leegte onendpointfound endpointid (touw, touw deviceid, uiteindelijk StringserviceId, string endpoIntname) {byte [...] belasting = nul; de buurt. Verbonden. Sendconnectionrequest (mgoogleapiclient, deviceid, endpointid, lading, de nieuwe verbinding. Connectionresponsecallback () {- de leegte onconnectionresponse (touw, een endpointid status, byte [...] byte) {als staat. Issuccess () {mstatustext setText ("verbonden." + endpointid); in de buurt. Verbonden. Stopdiscovery (mgoogleapiclient, service ID 's); mremotehostendpoint = endpointid; msendtextcontainer. Setvisibility (concept. Zichtbare); als (!Mishost) {}} {mstatustext weg =; anders. SetText ("verband" + endpointid + "falen"); als (!Mishost) {}}}} =, valse;}, dat,,,,,); in het geval van een, heb je het gehoord van de gebruikers meer voor je kiezen, nu de  , onendpointlost,   methode zal je laten weten als je een gastheer te stoppen met reclame in de gebruiker te verbinden Met het.De  , ondisconnected,   call - back - kan ook worden gebruikt voor de cliënt uitrusting die gebruikt kan worden voor in verband met de adverteerders in een onverwachte gebeurtenissen, 4, afgesloten.Een boodschap sturen, als je in verband met de apparatuur, het is tijd om te praten.Er zijn twee berichten kunnen verzenden,  , betrouwbare en onbetrouwbaar,,.Als je bekend bent met de netwerken, zie je, deze TCP  , UDP -.   vereenvoudigde toelichting is betrouwbare informatie zou het niet een boodschap sturen, zonder betrouwbare informatie zal alleen mogelijk zijn indien het verzenden en ontvangen van de daling van het succes van de gegevens, en in deze handleiding. Je zal het gebruik van betrouwbare informatie.Als de boodschap is ontvangen API, onmessagereceived,   zal worden genoemd.Deze methode heeft het eindpunt van een belasting, en houdt verband met de vraag of een boer zei dat betrouwbaar of niet betrouwbaar.De lading   bevat de boodschap en het eindpunt van een identificatiecode van de   berichten sturen.,, voorbeeld van toepassing is, je zal deze weergave van de lading, het touw van de m,  , als een van de instrumenten is de gastheer, weergegeven in elke aangesloten apparatuur,,. - onmessagereceived (endpointid leegte. Bytes van de belasting, [...], de betrouwbaarheid van de mmessageadapter booleaanse) {. Toevoeging van (nieuwe snaren (-)); mmessageadapter. Notifydatasetchanged (); als (mishost) {sendmessage (nieuwe snaren (-));}},,,, bericht van   methode is een van de methoden om aan te tonen dat   twee versies in de buurt, sendreliablemessage. Verband.De gastheer van toepassing is,  , sendreliablemessage,   zal zij een boodschap sturen naar de eindpunten van de lijst.Dit kan je een code met meerdere apparaten communiceren.Voor de klanten, sms alleen aan de gastheer, dus alleen maar een naam, googleapiclient parameters, en de boodschap van de reeks bytes, particuliere nietig sendmessage (...) {als (mishost) {in de buurt. Verbonden. Sendreliablemessage (mgoogleapiclient, mremotepeerendpoints, nieuws. Getbytes ()); mmessageadapter toegevoegd (informatie); mmessageadapter. (). Notifydatasetchanged of in de buurt van een;} {.. sendreliablemessage (mgoogleapiclient, mremotehostendpoint, (de buurt. Verbonden. Getlocaldeviceid (mgoogleapiclient) + "zei:" + informatie). Getbytes ());}},,,,, 5.Open, als je klaar bent, open de gastheer of klant van toepassing, een beetje schoonmaken moet gebeuren.De gastheer, je moet stoppen met reclame, Verbreek alle eindpunten, in de code van het monster, je merkt, een boodschap gestuurd worden, ook om de collega 's weten de gastheer is afgesloten.In een meer volledige aanvragen, wil je je klanten luisteren naar deze boodschap, zodat ze kunnen omgaan met situaties, als je probeert te breken met een niet verbonden met het mainframe van de cliënt, je moet stoppen met dat.Als je al in verband met de gastheer, noem je  , disconnectfromendpoint,   en verwerking van API - zal de verbinding te verbreken,., disconnect () {als (particuliere nietig.Isconnectedtonetwork ()) (mishost) {terug te keren; als sendmessage ("gesloten."); in de buurt. Verbonden. Stopadvertising (mgoogleapiclient); in de buurt. Verbonden. Stopallendpoints (mgoogleapiclient); mishost = vals; mstatustext. SetText (niet verband "); mremotepeerendpoints. Duidelijk (');} {als (andere!Weg



Previous:
Next Page: