<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.mobeleader.com/index.php?action=history&amp;feed=atom&amp;title=SDKs%3AGPSTracking%3Aindex</id>
	<title>SDKs:GPSTracking:index - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mobeleader.com/index.php?action=history&amp;feed=atom&amp;title=SDKs%3AGPSTracking%3Aindex"/>
	<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:GPSTracking:index&amp;action=history"/>
	<updated>2026-04-26T01:26:53Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:GPSTracking:index&amp;diff=3017&amp;oldid=prev</id>
		<title>Asier: /* Cambios en el archivo build.gradle. */</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:GPSTracking:index&amp;diff=3017&amp;oldid=prev"/>
		<updated>2019-11-25T17:28:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Cambios en el archivo build.gradle.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 19:28 25 nov 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;Línea 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Esta librería soporta todas las versiones de &amp;lt;b&amp;gt;Android&amp;lt;/b&amp;gt; superiores a la &amp;lt;b&amp;gt;4.0&amp;lt;/b&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;o &lt;/del&gt;&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Ice Cream Sandwich&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Esta librería soporta todas las versiones de &amp;lt;b&amp;gt;Android&amp;lt;/b&amp;gt; superiores a la &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;version &lt;/ins&gt;&amp;lt;b&amp;gt;4.0&amp;lt;/b&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(API level  &amp;lt;b&amp;gt;14&amp;lt;/b&amp;gt; y nombre en código &lt;/ins&gt;&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Ice Cream Sandwich&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== FUNCIONAMIENTO DE LA LIBRERÍA. ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== FUNCIONAMIENTO DE LA LIBRERÍA. ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l45&quot;&gt;Línea 45:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     repositories {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     repositories {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         mavenCentral()&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         mavenCentral()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         maven { url &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://maven.mobeleader.com&#039; }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         maven { url &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://maven.mobeleader.com&#039; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Asier</name></author>
	</entry>
	<entry>
		<id>https://wiki.mobeleader.com/index.php?title=SDKs:GPSTracking:index&amp;diff=706&amp;oldid=prev</id>
		<title>Gerardo: Página creada con «prueba»</title>
		<link rel="alternate" type="text/html" href="https://wiki.mobeleader.com/index.php?title=SDKs:GPSTracking:index&amp;diff=706&amp;oldid=prev"/>
		<updated>2017-09-12T16:06:39Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «prueba»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#CÓMO AGREGAR LA LIBRERÍA GPS-TRACKING EN ANDROID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== INTRODUCCIÓN. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La librería &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt; envía datos de la posición del dispositivo de manera periódica y constante, así como información del propio dispositivo en la que se ejecuta.&lt;br /&gt;
&lt;br /&gt;
== VERSIONES DE ANDROID SOPORTADAS. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta librería soporta todas las versiones de &amp;lt;b&amp;gt;Android&amp;lt;/b&amp;gt; superiores a la &amp;lt;b&amp;gt;4.0&amp;lt;/b&amp;gt; o &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Ice Cream Sandwich&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== FUNCIONAMIENTO DE LA LIBRERÍA. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La librería &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt; obtiene las &amp;lt;b&amp;gt;posiciones GPS&amp;lt;/b&amp;gt; del dispositivo y las envía periódicamente cada 3 horas, tanto si la aplicación está abierta como cerrada.&lt;br /&gt;
&lt;br /&gt;
== CONFIGURACION DE LOS ENVIOS. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El comportamiento de la librería es el siguiente:&lt;br /&gt;
&lt;br /&gt;
* Los envíos &amp;lt;b&amp;gt;comienzan una vez se abre la aplicación y continúan aún cerrando ésta&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* La &amp;lt;b&amp;gt;frecuencia&amp;lt;/b&amp;gt; de envío es de 3 horas.&lt;br /&gt;
&lt;br /&gt;
* NO existe un &amp;lt;b&amp;gt;límite&amp;lt;/b&amp;gt; de envíos.&lt;br /&gt;
&lt;br /&gt;
* NO se registra el usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si desea personalizar la configuración de la librería para que el comportamiento de ésta sea diferente contacte con su &amp;lt;b&amp;gt;administrador&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== INSTALACION DE LA LIBRERIA. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disponemos de un repositorio &amp;lt;b&amp;gt;maven&amp;lt;/b&amp;gt; para que sus librerías puedan ser utilizadas en &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Android Studio&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Para poder usar la librería &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt; es necesario realizar varios cambios, tanto en el archivo &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;build.gradle&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; como en el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;AndroidManifest.xml&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; de su aplicación.&lt;br /&gt;
&lt;br /&gt;
=== Cambios en el archivo &amp;lt;i&amp;gt;build.gradle&amp;lt;/i&amp;gt;. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el apartado &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;repositories&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; deberá añadir:&lt;br /&gt;
&lt;br /&gt;
    repositories {&lt;br /&gt;
        mavenCentral()&lt;br /&gt;
        maven { url &amp;#039;http://maven.mobeleader.com&amp;#039; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
La librería &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt; utiliza la librería auxiliar &amp;lt;b&amp;gt;UtilsLib&amp;lt;/b&amp;gt;. Por tanto, para utilizar la librería &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt; en su aplicación, en el apartado &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;dependencies&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; deberá añadir:&lt;br /&gt;
&lt;br /&gt;
    //noinspection GradleDynamicVersion&lt;br /&gt;
    implementation &amp;#039;com.mobeleader.utils:UtilsLib:+&amp;#039;&lt;br /&gt;
    //noinspection GradleDynamicVersion&lt;br /&gt;
    api &amp;#039;com.mobeleader.gpstracking:GPSTrackingLib:+&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Si desea registrar los usuarios de la aplicación cuando se realice un envío (no olvide contactar con su administrador para activar esta opción), añada la siguiente dependencia:&lt;br /&gt;
&lt;br /&gt;
    //noinspection GradleDynamicVersion&lt;br /&gt;
    api &amp;#039;com.mobeleader.register:RegisterLib:+&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Cambios en el archivo &amp;lt;i&amp;gt;AndroidManifest.xml&amp;lt;/i&amp;gt;. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir los siguientes permisos:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;uses-permission android:name=&amp;quot;android.permission.WAKE_LOCK&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añada los siguientes permisos opcionales para que el funcionamiento de la librería sea completo:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_WIFI_STATE&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;uses-permission android:name=&amp;quot;android.permission.READ_PHONE_STATE&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añada el servicio &amp;lt;b&amp;gt;com.mobeleader.gpstracking.GPSTrackingService&amp;lt;/b&amp;gt; a la etiqueta &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;application&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;service android:name=&amp;quot;com.mobeleader.gpstracking.GPSTrackingService&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añada el &amp;lt;i&amp;gt;receiver&amp;lt;/i&amp;gt; &amp;lt;b&amp;gt;com.mobeleader.gpstracking.GPSTrackingReceiver&amp;lt;/b&amp;gt; a la etiqueta &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;application&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;receiver android:name=&amp;quot;com.mobeleader.gpstracking.GPSTrackingReceiver&amp;quot; &amp;gt;&lt;br /&gt;
    	&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
        	&amp;lt;action android:name=&amp;quot;android.intent.action.BOOT_COMPLETED&amp;quot; /&amp;gt;&lt;br /&gt;
    	&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
    &amp;lt;/receiver&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cambios en el &amp;lt;i&amp;gt;Proguard&amp;lt;/i&amp;gt;. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En caso de que esté utilizando el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Proguard&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; (variable &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;minifyEnabled&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; a &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;TRUE&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; en el &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;build.gradle&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;), será necesario añadir en el fichero del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Proguard&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; utilizado (&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;proguard-rules.pro&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; por defecto) la siguiente regla:&lt;br /&gt;
&lt;br /&gt;
    -keep class com.mobeleader.&amp;lt;i&amp;gt;&amp;lt;/i&amp;gt; {*;}&lt;br /&gt;
&lt;br /&gt;
== LANZAMIENTO DE LA LIBRERIA. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instancia de la clase GPSTracking. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La librería puede ser lanzada en cualquier momento y lugar. Para ello, lo primero que debe hacer es instanciar la clase &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Existen 2 maneras de instanciar la clase &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Añadiendo únicamente el &amp;lt;b&amp;gt;contexto&amp;lt;/b&amp;gt; del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Activity&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. En este caso el &amp;lt;b&amp;gt;comportamiento&amp;lt;/b&amp;gt; de la librería será el &amp;lt;b&amp;gt;estándar o por defecto&amp;lt;/b&amp;gt; y no tendrá opción de modificarlo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    GPSTracking gpsTracking = new GPSTracking(this);&lt;br /&gt;
&lt;br /&gt;
* Añadiendo el &amp;lt;b&amp;gt;contexto&amp;lt;/b&amp;gt; del &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Activity&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; y el &amp;lt;b&amp;gt;código hash&amp;lt;/b&amp;gt; de la aplicación. En este caso el &amp;lt;b&amp;gt;comportamiento&amp;lt;/b&amp;gt; de la librería puede ser el &amp;lt;b&amp;gt;estándar&amp;lt;/b&amp;gt; o &amp;lt;b&amp;gt;personalizado&amp;lt;/b&amp;gt;. El comportamiento puede ser modificado en cualquier momento:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    GPSTracking gpsTracking = new GPSTracking(this,&amp;quot;appHash&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Puede obtener el &amp;lt;b&amp;gt;código hash&amp;lt;/b&amp;gt; entrando en la sección [http://panel.mobeleader.com/index.php?sec=6 Mis Aplicaciones] y pulsando el icono de la columna &amp;lt;b&amp;gt;&amp;quot;Hash&amp;quot;&amp;lt;/b&amp;gt; de su aplicación.&lt;br /&gt;
https://panel.mobeleader.com/ficheros_subidos/librerias/imagenes/sps/app_hash.png&lt;br /&gt;
&lt;br /&gt;
=== Notificación del servicio. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de la versión &amp;lt;b&amp;gt;8.0&amp;lt;/b&amp;gt; u &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Oreo&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Android&amp;lt;/b&amp;gt; exige la notificación de los servicios que puedan ser ejecutados en &amp;lt;i&amp;gt;background&amp;lt;/i&amp;gt;. En caso de NO notificarse la ejecución de estos servicios la aplicación podría ser rechazada, por lo que es conveniente hacerlo.&lt;br /&gt;
&lt;br /&gt;
Existen dos maneras de crear la notificación a partir del servicio de localización&lt;br /&gt;
* Creando un nuevo canal de notificación.&lt;br /&gt;
&lt;br /&gt;
* A partir de un canal previamente creado en su proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Independientemente de la manera en que cree la notificación, es necesario añadir el icono para las notificaciones de &amp;lt;b&amp;gt;Android&amp;lt;/b&amp;gt;, de lo contrario mostrará un icono vacío, lo cual podría ocasionar el rechazo de la aplicación por parte de &amp;lt;b&amp;gt;Android&amp;lt;/b&amp;gt;. Si no tiene creado el recurso &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Drawable&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; añadaló.&lt;br /&gt;
&lt;br /&gt;
Para obtener más información al respecto consulte el apartado [https://developer.android.com/guide/topics/ui/notifiers/notifications.html &amp;lt;b&amp;gt;&amp;#039;Notificaciones&amp;#039; en la web de Android&amp;lt;/b&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Creando un nuevo canal de notificación. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si no tiene creado un canal de notificaciones, la propia librería &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt; se encargará de hacerlo. Para ello añada el siguiente código una vez instanciada la clase:&lt;br /&gt;
&lt;br /&gt;
    gpsTracking.setNotification(icon_id);&lt;br /&gt;
&lt;br /&gt;
En el campo &amp;lt;b&amp;gt;icon_id&amp;lt;/b&amp;gt; ha de añadir el identificador del recurso. Ejemplo: &amp;lt;b&amp;gt;R&amp;lt;/b&amp;gt;.drawable.&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;ic_notification_icon&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== A partir de un canal previamente creado en su proyecto. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si ya tiene creado un canal de notificaciones y desea utilizarlo para el servicio de &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt;, añada el siguiente código una vez instanciada la clase:&lt;br /&gt;
&lt;br /&gt;
    gpsTracking.setNotification(icon_id, channel_id, notification_id);&lt;br /&gt;
&lt;br /&gt;
* En el campo &amp;lt;b&amp;gt;icon_id&amp;lt;/b&amp;gt; ha de añadir el identificador del recurso. Ejemplo: &amp;lt;b&amp;gt;R&amp;lt;/b&amp;gt;.drawable.&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;ic_notification_icon&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* El campo &amp;lt;b&amp;gt;channel_id&amp;lt;/b&amp;gt; es la cadena utilizada como identificador del canal de notificaciones. Es el parámetro &amp;lt;b&amp;gt;id&amp;lt;/b&amp;gt; al instanciar la clase &amp;lt;b&amp;gt;NotificationChannel&amp;lt;/b&amp;gt; en su proyecto.&lt;br /&gt;
&lt;br /&gt;
* El campo &amp;lt;b&amp;gt;notification_id&amp;lt;/b&amp;gt; es el identificador de las notificaciones de su proyecto. Es el parámetro &amp;lt;b&amp;gt;id&amp;lt;/b&amp;gt; de la función &amp;lt;b&amp;gt;startForeground&amp;lt;/b&amp;gt; de creación del servicio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Activación del servicio de localización. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez instanciada la clase y configurados los parámetros de notificación ha de llamar a la función GPSTracking.&amp;lt;b&amp;gt;start()&amp;lt;/b&amp;gt; para iniciar el envío de localizaciones.&lt;br /&gt;
&lt;br /&gt;
    gpsTracking.start();&lt;br /&gt;
&lt;br /&gt;
=== Activación del servicio a partir de la versión 6.0. o &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Marshmallow&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El servicio de localización requiere, entre otros, el permiso &amp;lt;b&amp;gt;android.permission.ACCESS_FINE_LOCATION&amp;lt;/b&amp;gt;, considerado como crítico por &amp;lt;b&amp;gt;Google&amp;lt;/b&amp;gt;. Para versiones de &amp;lt;b&amp;gt;Android&amp;lt;/b&amp;gt; iguales o superiores a la &amp;lt;b&amp;gt;6.0&amp;lt;/b&amp;gt; es necesario que la app conceda expresamente este permiso al menos la primera vez que sea requerido. Para ello, ha de implementar el siguiente código:&lt;br /&gt;
&lt;br /&gt;
    if (Build.VERSION.SDK_INT &amp;gt;= 23) {&lt;br /&gt;
    &lt;br /&gt;
    	UtilsRequestPermissions.checkPermission(this, &amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;, 1, new UtilsRequestPermissionsListener() {&lt;br /&gt;
    &lt;br /&gt;
                   @Override&lt;br /&gt;
                    public void onPermissionGranted() {&lt;br /&gt;
                        gpsTracking.start();&lt;br /&gt;
                    }&lt;br /&gt;
    &lt;br /&gt;
                    @Override&lt;br /&gt;
                    public void onPermissionRequest() {&lt;br /&gt;
                        ActivityCompat.requestPermissions(MyActivity.this,&lt;br /&gt;
                                new String[]{&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;},&lt;br /&gt;
                                1);&lt;br /&gt;
                    }&lt;br /&gt;
    &lt;br /&gt;
                    @Override&lt;br /&gt;
                    public void onPermissionPreviouslyDenied() {&lt;br /&gt;
                        new AlertDialog.Builder(MyActivity.this)&lt;br /&gt;
                                .setTitle(R.string.titulo_permiso_requerido)&lt;br /&gt;
                                .setMessage(R.string.aviso_de_uso_de_localizacion)&lt;br /&gt;
                                .setPositiveButton(&amp;quot;Permitir&amp;quot;, new DialogInterface.OnClickListener() {&lt;br /&gt;
                                    @Override&lt;br /&gt;
                                    public void onClick(DialogInterface dialog, int which) {&lt;br /&gt;
                                        ActivityCompat.requestPermissions(MyActivity.this,&lt;br /&gt;
                                                new String[]{&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;},&lt;br /&gt;
                                                1);&lt;br /&gt;
                                    }&lt;br /&gt;
    &lt;br /&gt;
                                })&lt;br /&gt;
                                .setNegativeButton(&amp;quot;Denegar&amp;quot;, new DialogInterface.OnClickListener() {&lt;br /&gt;
                                    @Override&lt;br /&gt;
                                    public void onClick(DialogInterface dialog, int which) {&lt;br /&gt;
                                        dialog.cancel();&lt;br /&gt;
                                    }&lt;br /&gt;
                                })&lt;br /&gt;
                                .show();&lt;br /&gt;
                    }&lt;br /&gt;
    &lt;br /&gt;
                    @Override&lt;br /&gt;
                    public void onPermissionDisabled() {&lt;br /&gt;
                        neverAskAgain_AFL = MyActivity.this.getSharedPreferences(&amp;quot;permisos&amp;quot;, Context.MODE_PRIVATE).getBoolean(&amp;quot;neverAskAgain_AFL&amp;quot;,false);&lt;br /&gt;
    &lt;br /&gt;
                        if(!neverAskAgain_AFL){&lt;br /&gt;
                            neverAskAgain_AFL = MyActivity.this.getSharedPreferences(&amp;quot;permisos&amp;quot;, Context.MODE_PRIVATE).edit().putBoolean(&amp;quot;neverAskAgain_AFL&amp;quot;,true).commit();&lt;br /&gt;
                            new AlertDialog.Builder(MyActivity.this)&lt;br /&gt;
                                    .setTitle(R.string.titulo_permiso_deshabilitado)&lt;br /&gt;
                                    .setMessage(R.string.info_como_habilitar_localizacion)&lt;br /&gt;
                                    .setPositiveButton(&amp;quot;Ok&amp;quot;, new DialogInterface.OnClickListener() {&lt;br /&gt;
                                        @Override&lt;br /&gt;
                                        public void onClick(DialogInterface dialog, int which) {&lt;br /&gt;
                                            dialog.cancel();&lt;br /&gt;
                                        }&lt;br /&gt;
    &lt;br /&gt;
                                    })&lt;br /&gt;
                                    .setNegativeButton(&amp;quot;Cancel&amp;quot;, new DialogInterface.OnClickListener() {&lt;br /&gt;
                                        @Override&lt;br /&gt;
                                        public void onClick(DialogInterface dialog, int which) {&lt;br /&gt;
                                            dialog.cancel();&lt;br /&gt;
                                        }&lt;br /&gt;
                                    })&lt;br /&gt;
                                    .show();&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
        });&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        gpsTracking.start();&lt;br /&gt;
    }&lt;br /&gt;
			&lt;br /&gt;
&lt;br /&gt;
=== Finalización del servicio. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede parar el servicio de localización en el momento que desee, utilizando la función GPSTracking.&amp;lt;b&amp;gt;stop()&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
    gpsTracking.stop();&lt;br /&gt;
&lt;br /&gt;
En caso de deshabiltar la opción de localización GPS del dispositivo, el servicio &amp;lt;b&amp;gt;GPSTracking&amp;lt;/b&amp;gt; se mantendrá a la espera hasta que vuelva a habilitarse la opción.&lt;/div&gt;</summary>
		<author><name>Gerardo</name></author>
	</entry>
</feed>