{"id":2182,"date":"2016-03-01T00:14:15","date_gmt":"2016-03-01T00:14:14","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2182"},"modified":"2019-04-14T04:30:07","modified_gmt":"2019-04-14T11:30:07","slug":"getting-started-with-beacons-and-couchbase-lite-android","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/getting-started-with-beacons-and-couchbase-lite-android\/","title":{"rendered":"Primeros pasos con Beacons y Couchbase Lite Android"},"content":{"rendered":"<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/getting-started-with-beacons-and-couchbase-lite-android\/altbeaconlogo.png\" alt=\"altbeacon\" align=\"right\" \/>Balizas. Estos peque\u00f1os dispositivos podr\u00edan convertirse en omnipresentes en el futuro. Comenz\u00f3 con iBeacons de Apple, AltBeacon, y Google ahora est\u00e1 consiguiendo su propia plataforma llamada <a href=\"https:\/\/developers.google.com\/beacons\/\">Eddystone<\/a>. Esto va a ser interesante.<\/p>\n<p>Si no sabes lo que es una baliza, es una cosa tonta que s\u00f3lo sabe emitir su presencia al mundo. Ese es el \u00fanico prop\u00f3sito de una baliza. Decirle a quien est\u00e9 escuchando dentro de su alcance que est\u00e1 aqu\u00ed y que su nombre es e9ae6b9f-7238-4df6-8497-dec29ebf4184 (o algo as\u00ed). Para ello utiliza <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bluetooth_low_energy\">Bluetooth LE<\/a>\u00a0(O Bluetooth Low Energy, BLE, Bluetooth Smart).<\/p>\n<p>Esto significa que una baliza es \u00fatil cuando se dispone de una aplicaci\u00f3n que sabe c\u00f3mo reaccionar ante la presencia de la baliza. La aplicaci\u00f3n tiene que saber qu\u00e9 hacer cuando el usuario se encuentra con la baliza. Y puede que lo que haya que hacer cambie con el tiempo. Si te cruzas con una baliza en un supermercado, la aplicaci\u00f3n puede mostrarte lo que est\u00e1 de oferta en ese momento. Y, obviamente, esto cambiar\u00e1 con el tiempo. As\u00ed que una buena cosa cuando se trabaja con balizas es ser capaz de reutilizarlas. Esto es algo que Couchbase Mobile puede ofrecerte. Sincroniza f\u00e1cilmente un nuevo comportamiento para un beacon en particular.<\/p>\n<p>Y, por supuesto, como funciona sin conexi\u00f3n, siempre puede hacer lo previsto aunque el usuario no tenga conexi\u00f3n a la red. Tambi\u00e9n puede guardar un documento localmente con informaci\u00f3n sobre el usuario que se encuentra dentro del alcance de la baliza y sincronizarlo m\u00e1s tarde con el servidor. Puede proporcionarte datos interesantes sobre el comportamiento de tus usuarios en un lugar sin conexi\u00f3n a la red o con una conexi\u00f3n deficiente. Piensa, por ejemplo, en un gran evento al aire libre.<\/p>\n<p>Empec\u00e9 a juguetear con estas ideas para varias conferencias y meetups, aqu\u00ed est\u00e1 c\u00f3mo empezar con Beacons y Android.<\/p>\n<h2>Probar balizas<\/h2>\n<p>Poder probar balizas es lo primero que quer\u00eda hacer. Y la raz\u00f3n es que no tengo balizas :). Lo que puede sonar raro, lo s\u00e9. Pero una baliza no es m\u00e1s que un dispositivo bluetooth de baja energ\u00eda. Tengo bluetooth en mi mac, tambi\u00e9n tengo algunos dongles BLE y una RaspberryPi, todo deber\u00eda estar bien.<\/p>\n<p>La maravillosa gente de Radius Networks construy\u00f3 una imagen VM que puede actuar muy sencillamente como un faro. Todo se explica en su <a href=\"https:\/\/developer.radiusnetworks.com\/altbeacon\/virtual\">sitio web<\/a>. Si tienes un Mac y quieres usar su hardware Bluetooth en VirtualBox, debes saber que primero tienes que desactivarlo para la m\u00e1quina virtual. Si tienes un dongle bluetooth es muy r\u00e1pido, s\u00f3lo aseg\u00farate de que VirtualBox est\u00e1 configurado para usarlo.<\/p>\n<p>Tambi\u00e9n construyeron PiBeacon. Es m\u00e1s o menos un kit de desarrollo de Beacon basado en la RaspberryPI. Y puedes descargar la imagen para la Raspberry <a href=\"https:\/\/developer.radiusnetworks.com\/pibeacon\/pibeacon-update.html\">aqu\u00ed<\/a>. Tambi\u00e9n puede encontrar instrucciones completas en su <a href=\"https:\/\/developer.radiusnetworks.com\/pibeacon\/pibeacon-instructions.html\">sitio web<\/a>.<\/p>\n<p>Una vez que tengas la Raspberry funcionando con su imagen, puedes conectarte por SSH y ejecutar algo como<\/p>\n<pre><code> sudo beacon transmit -A -f 5 -1 00000000-0000-0000-0000-000000000000 -2 0 -3 0 -r 0\n<\/code><\/pre>\n<p>Esto simular\u00e1 un transmisor de baliza. Tienen tres identificadores. Un UUID, una versi\u00f3n mayor y una versi\u00f3n menor. Esto forma parte de la capa com\u00fan entre todos los formatos de balizas, como AltBeacon (formato abierto), iBeacon (Apple) y EddyStone (Google). Y esto es lo que las aplicaciones utilizan para identificar las balizas.<\/p>\n<p>Quer\u00eda asegurarme de que todo funcionaba correctamente, as\u00ed que instal\u00e9 BeaconScanner en mi Mac y otra aplicaci\u00f3n de escaneado de balizas en mi tel\u00e9fono. Ambas captaron la se\u00f1al, as\u00ed que estaba listo para trabajar en mi aplicaci\u00f3n.<\/p>\n<h2>\u00a0Android y balizas<\/h2>\n<p>Quer\u00eda que todo fuera lo m\u00e1s sencillo posible, as\u00ed que opt\u00e9 por el <a href=\"https:\/\/altbeacon.org\/\">AltBeacon<\/a> pila. Todo es <a href=\"https:\/\/github.com\/AltBeacon\/spec\">c\u00f3digo abierto<\/a> y tienen un bonito <a href=\"https:\/\/github.com\/AltBeacon\/android-beacon-library\">Biblioteca Android<\/a>. Tambi\u00e9n son agradables y f\u00e1ciles de entender. <a href=\"https:\/\/altbeacon.github.io\/android-beacon-library\/samples.html\">muestras de c\u00f3digo<\/a>\u00a0que facilit\u00f3 la puesta en marcha. As\u00ed que lo primero es lo primero, incluir la dependencia correcta a su aplicaci\u00f3n. Empieza a\u00f1adiendo el repositorio maven de JCenter:<\/p>\n<pre><code>repositories {\n    jcenter()\n} \n<\/code><\/pre>\n<p>A continuaci\u00f3n, a\u00f1ada la biblioteca propiamente dicha:<\/p>\n<pre><code>dependencies {\n    ...\n    compile 'org.altbeacon:android-beacon-library:${altbeacon.version}'\n    ...\n}\n<\/code><\/pre>\n<p>Otra cosa que puedes modificar es a\u00f1adir el permiso adecuado a tu aplicaci\u00f3n <em>AndroidManifest.xml<\/em>:<\/p>\n<pre><code>\n\n<\/code><\/pre>\n<p>Hay b\u00e1sicamente dos cosas que puedes hacer con Couchbase Mobile. Puedes actuar como cliente y reaccionar a la presencia de un beacon, o puedes actuar como backend y configurar los beacons.<\/p>\n<p>Empecemos por el c\u00f3digo que inicializa el servicio en segundo plano de la baliza. En tu Aplicaci\u00f3n, al crearla, puedes ejecutar el siguiente c\u00f3digo:<\/p>\n<pre><code>    BeaconManager beaconManager = org.altbeacon.beacon.BeaconManager.getInstanceForApplication(this);\n    Log.d(TAG, \"setting up background monitoring for beacons and power saving\");\n    \/\/ wake up the app when a beacon is seen\n    Region region = new Region(\"backgroundRegion\",\n            null, null, null);\n    regionBootstrap = new RegionBootstrap(this, region);\n    backgroundPowerSaver = new BackgroundPowerSaver(this);\n    beaconManager.setBackgroundScanPeriod(1000);\n    beaconManager.setBackgroundBetweenScanPeriod(1000);\n    beaconManager.setForegroundBetweenScanPeriod(1000);\n    beaconManager.setForegroundScanPeriod(1000);\n<\/code><\/pre>\n<p>He configurado algunos tiempos agresivos para pruebas. En producci\u00f3n se usar\u00eda una duraci\u00f3n m\u00e1s larga. Mi clase Application tambi\u00e9n implementa la interfaz BootstrapNotifier. El m\u00e9todo didEnterRegion permite lanzar una actividad espec\u00edfica cuando se entra en el rango de una baliza.<\/p>\n<pre><code>    @Override\n    public void didEnterRegion(Region region) {\n        \/\/ In this example, this class sends a notification to the user whenever a Beacon\n        \/\/ matching a Region (defined above) are first seen.\n        Log.d(TAG, \"did enter region.\");\n        if (!haveDetectedBeaconsSinceBoot) {\n            Log.d(TAG, \"auto launching MainActivity\");\n\n            \/\/ The very first time since boot that we detect an beacon, we launch the\n            \/\/ MainActivity\n            Intent intent = new Intent(this, BeaconListActivity.class);\n            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n            \/\/ Important:  make sure to add android:launchMode=\"singleInstance\" in the manifest\n            \/\/ to keep multiple copies of this activity from getting created if the user has\n            \/\/ already manually launched the app.\n            this.startActivity(intent);\n            haveDetectedBeaconsSinceBoot = true;\n        } else {\n            if (beaconListActivity != null) {\n                \/\/ If the Monitoring Activity is visible, we log info about the beacons we have\n                \/\/ seen on its display\n                Log.i(TAG, \"I see a beacon again\");\n            } else {\n                \/\/ If we have already seen beacons before, but the monitoring activity is not in\n                \/\/ the foreground, we send a notification to the user on subsequent detections.\n                Log.d(TAG, \"Sending notification.\");\n                sendNotification();\n            }\n        }\n    }\n<\/code><\/pre>\n<p>Esta actividad contendr\u00e1 el c\u00f3digo que quieras mostrar dependiendo del ID de la baliza, por ejemplo. O tal vez s\u00f3lo desea guardar un documento para registrar que el usuario actual ha estado en el rango de una baliza en particular. Que es lo primero que quiero hacer. As\u00ed que necesito una actividad que implemente el m\u00e9todo <a href=\"https:\/\/altbeacon.github.io\/android-beacon-library\/javadoc\/org\/altbeacon\/beacon\/BeaconConsumer.html\">BeaconConsumer<\/a> interfaz.<\/p>\n<pre><code>    @Override\n    public void onBeaconServiceConnect() {\n\n        beaconManager.setRangeNotifier(new RangeNotifier() {\n            @Override\n            public void didRangeBeaconsInRegion(Collection beacons, Region region) {\n                if (beacons.size() &gt; 0) {\n                    Beacon firstBeacon = beacons.iterator().next();\n                    Document beaconVisit = database.createDocument();\n                    Map&lt;string, object=\"\"&gt; properties = new HashMap&lt;string, object=\"\"&gt;();\n                    properties.put(\"type\", \"beacon-visit\");\n                    properties.put(\"channel\", firstBeacon.getId1().toString() + firstBeacon.getId2().toString() + firstBeacon.getId3().toString());\n                    properties.put(\"visitDate\", System.currentTimeMillis());\n                    try {\n                        beaconVisit.putProperties(properties);\n                        beaconApp.doSync();\n                    } catch (CouchbaseLiteException e) {\n                        throw new RuntimeException(e);\n                    }\n                }\n            }\n        });\n        try {\n            beaconManager.startRangingBeaconsInRegion(new Region(\"myRangingUniqueId\", null, null, null));\n        } catch (RemoteException e) {\n            throw new RuntimeException(e);\n        }\n    }\n&lt;\/string,&gt;&lt;\/string,&gt;<\/code><\/pre>\n<p>Este es un c\u00f3digo muy b\u00e1sico, pero se entiende la idea. En este momento tambi\u00e9n podr\u00edas sincronizar un canal con el nombre del identificador de la baliza. De esta forma obtendr\u00e1s toda la informaci\u00f3n que necesitas para mostrar informaci\u00f3n significativa al usuario. Y si esta informaci\u00f3n cambia con el tiempo, todo lo que tienes que hacer es modificar el documento que contiene el comportamiento de la baliza y sincronizarlo de nuevo con todos los usuarios. Es realmente f\u00e1cil construir un backend de baliza con la herramienta <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.2\/develop\/references\/sync-gateway\/rest-api\/index.html\">API REST de Sync Gateway<\/a> :)<\/p>\n<p>\u00bfQu\u00e9 opina de las balizas? \u00bfYa eres usuario? \u00bfLe gustar\u00eda que habl\u00e1ramos m\u00e1s de ello? H\u00e1ganos saber su opini\u00f3n.<\/p>","protected":false},"excerpt":{"rendered":"<p>Beacons. These small devices might become ubiquitous in the future. It started with iBeacons from Apple, AltBeacon, and Google is now getting it&#8217;s own platform called Eddystone. This is going to be interesting. If you don&#8217;t know what a beacon [&hellip;]<\/p>","protected":false},"author":49,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1810],"tags":[1582],"ppma_author":[9023],"class_list":["post-2182","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-mobile","tag-beacon"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Get to know Beacons &amp; Couchbase Lite Android - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Visit the post to know more about what is Beacons and how it is useful. Learn more about how to get started with Beacons and Android.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/getting-started-with-beacons-and-couchbase-lite-android\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting Started with Beacons and Couchbase Lite Android\" \/>\n<meta property=\"og:description\" content=\"Visit the post to know more about what is Beacons and how it is useful. Learn more about how to get started with Beacons and Android.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/getting-started-with-beacons-and-couchbase-lite-android\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-01T00:14:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-14T11:30:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Laurent Doguin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ldoguin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"unstructured.io\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/\"},\"author\":{\"name\":\"Laurent Doguin\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\"},\"headline\":\"Getting Started with Beacons and Couchbase Lite Android\",\"datePublished\":\"2016-03-01T00:14:14+00:00\",\"dateModified\":\"2019-04-14T11:30:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/\"},\"wordCount\":944,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"beacon\"],\"articleSection\":[\"Couchbase Mobile\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/\",\"name\":\"Get to know Beacons & Couchbase Lite Android - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-03-01T00:14:14+00:00\",\"dateModified\":\"2019-04-14T11:30:07+00:00\",\"description\":\"Visit the post to know more about what is Beacons and how it is useful. Learn more about how to get started with Beacons and Android.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting Started with Beacons and Couchbase Lite Android\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\",\"name\":\"Laurent Doguin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"caption\":\"Laurent Doguin\"},\"description\":\"Laurent is a nerdy metal head who lives in Paris. He mostly writes code in Java and structured text in AsciiDoc, and often talks about data, reactive programming and other buzzwordy stuff. He is also a former Developer Advocate for Clever Cloud and Nuxeo where he devoted his time and expertise to helping those communities grow bigger and stronger. He now runs Developer Relations at Couchbase.\",\"sameAs\":[\"https:\/\/x.com\/ldoguin\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1985-06-07\",\"gender\":\"male\",\"award\":[\"Devoxx Champion\",\"Couchbase Legend\"],\"knowsAbout\":[\"Java\"],\"knowsLanguage\":[\"English\",\"French\"],\"jobTitle\":\"Director Developer Relation & Strategy\",\"worksFor\":\"Couchbase\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/laurent-doguin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Get to know Beacons & Couchbase Lite Android - The Couchbase Blog","description":"Visita el post para saber m\u00e1s sobre qu\u00e9 es Beacons y su utilidad. M\u00e1s informaci\u00f3n sobre c\u00f3mo empezar con Beacons y Android.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/getting-started-with-beacons-and-couchbase-lite-android\/","og_locale":"es_MX","og_type":"article","og_title":"Getting Started with Beacons and Couchbase Lite Android","og_description":"Visit the post to know more about what is Beacons and how it is useful. Learn more about how to get started with Beacons and Android.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/getting-started-with-beacons-and-couchbase-lite-android\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-03-01T00:14:14+00:00","article_modified_time":"2019-04-14T11:30:07+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Laurent Doguin","twitter_card":"summary_large_image","twitter_creator":"@ldoguin","twitter_misc":{"Written by":"unstructured.io","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/"},"author":{"name":"Laurent Doguin","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e"},"headline":"Getting Started with Beacons and Couchbase Lite Android","datePublished":"2016-03-01T00:14:14+00:00","dateModified":"2019-04-14T11:30:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/"},"wordCount":944,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["beacon"],"articleSection":["Couchbase Mobile"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/","url":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/","name":"Get to know Beacons & Couchbase Lite Android - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-03-01T00:14:14+00:00","dateModified":"2019-04-14T11:30:07+00:00","description":"Visita el post para saber m\u00e1s sobre qu\u00e9 es Beacons y su utilidad. M\u00e1s informaci\u00f3n sobre c\u00f3mo empezar con Beacons y Android.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-beacons-and-couchbase-lite-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Getting Started with Beacons and Couchbase Lite Android"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e","name":"Laurent Doguin","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071","url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","caption":"Laurent Doguin"},"description":"Laurent es un metalero empoll\u00f3n que vive en Par\u00eds. Principalmente escribe c\u00f3digo en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programaci\u00f3n reactiva y otras cosas de moda. Tambi\u00e9n fue Developer Advocate de Clever Cloud y Nuxeo, donde dedic\u00f3 su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.","sameAs":["https:\/\/x.com\/ldoguin"],"honorificPrefix":"Mr","birthDate":"1985-06-07","gender":"male","award":["Devoxx Champion","Couchbase Legend"],"knowsAbout":["Java"],"knowsLanguage":["English","French"],"jobTitle":"Director Developer Relation & Strategy","worksFor":"Couchbase","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/laurent-doguin\/"}]}},"authors":[{"term_id":9023,"user_id":49,"is_guest":0,"slug":"laurent-doguin","display_name":"Laurent Doguin","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","author_category":"","last_name":"Doguin","first_name":"Laurent","job_title":"","user_url":"","description":"Laurent es un metalero empoll\u00f3n que vive en Par\u00eds. Principalmente escribe c\u00f3digo en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programaci\u00f3n reactiva y otras cosas de moda. Tambi\u00e9n fue Developer Advocate de Clever Cloud y Nuxeo, donde dedic\u00f3 su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2182"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2182\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2182"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}