Android con API OpenCellid.org + JSON + Google Map (Geolocalizar BTS)

PocPresento en esta oportunidad una pequeña aplicación en Android que integra los siguientes conceptos:

  • Utilizar de un API de OpenCellid.org: Utilizado para obtener datos de la Estación Transceptora Base (BTS) o antena, a la cual se conecta nuestro celular en una comunicación GSM).
  • Utilizar la Clase TelephonyManager: Utilizado para obtener parámetros que tiene nuestro celular para geolocalizar la Estación Transceptora Base (BTS) o antena.
  • Utilizar JSON: Utilizado para manipular la respuesta del API OpenCellid.org con datos de la Estación Transceptora Base (BTS) o antena, a la cual se conecta nuestro celular en una comunicación GSM).
  • Utilizar Clase Interna de Java: Utilizada en la implementación de la Clase interna ManagerNet extiende de AsyncTask.
  • Utilizar Clase AsyncTask: Utilizado para realizar operaciones en segundo plano y publicar los resultados sobre el hilo de interfaz de usuario.
  • Utilizar Clase HttpURLConnection: Utilizado para establece comunicación de HTTP con el API OpenCellid.org.
  • Utilizar un WebView: Utilizado para mostrar el sitio web de Google Map embebido en nuestra aplicación.
  • Utilizar Google Map: Utilizado para geolocalizar la Estación Transceptora Base (BTS) o antena, a la cual se conecta nuestro celular en una comunicación GSM).

Tecnología GSM

Leyendo sobre la tecnología y funcionamiento GSM (Sistema Global para las Comunicaciones Móviles), es el estándar para la comunicación inalámbrica aplicada a teléfonos móviles, que hace uso de la red celular para su funcionamiento, estructura básica del sistema GSM, este se organiza como una red de células radioeléctricas continuas que proporcionan cobertura completa al área de servicio. Cada célula pertenece a una Estación Transceptora Base ó Estación Base (BTS) que opera en un conjunto de canales de radio diferentes a los usados en las células adyacentes y que se encuentran distribuidas según un plan celular, entre sus elementos principales se destaca:

  1. Estación Móvil (MS): que es un dispositivo para comunicarse dentro de la red (teléfono, tablet, pc, etc).
  2. Estación Transceptora Base ó Estación Base (BTS): que es un transmisor/receptor usando para transmitir/recibir señales de la sección de radio de la red.
  3. Centro Conmutador Móvil (MSC): establece y mantiene las llamadas que se hacen en la red.
  4. Controlador de estación base (BSC): controla las comunicaciones entre grupos de estaciones tranceptoras bases (BTS’s) y un solo centro conmutador móvil.
  5. Red de telefonía publica conmutada (PSTN): que es la sección terrestre de la red.

Nuestra Aplicación:

Nuestra aplicación comprende los primeros dos elementos de la estructura de un área celular (GSM), el MS que seria nuestro celular y la Estación Base (BTS) la que proporciona servicio GSM donde estamos ubicados, nuestro objetivo es geolocalizar la Estación Base (BTS)  tomando como insumo datos que proporciona nuestro celular y utilizando la API OpenCellid.org para obtener las coordenadas geográficas de la Estación Base (BTS)  para luego mostrar ubicada la Estación Base (BTS) en Google Map.

Datos sobre el API OpenCellid.org

  1. Web Site: http://opencellid.org/
  2. OpenCellID es el proyecto de colaboración más importante del mundo de la comunidad que recoge las posiciones GPS de las torres de celulares, que se utiliza de forma gratuita, para una multitud de fines comerciales y privados.
  3. API: La mayoría de las llamadas a la API se requiere una clave de API, esta clave de se puede obtener al registrarse aquí .
  4. El API tiene documentación clara sobre su uso.

Datos requeridos para el API

Estos datos son obtenidos por medio de la clase de Android (TelephonyManager) estos datos están en nuestro celular:

  • Cellid o CID: Un número único utilizado para identificar la estación transceptora base GSM de que el teléfono está conectado.
  • LAC: Identifica el área de ubicación del teléfono dentro de una red móvil terrestre pública GSM.
  • MCC: Identifica el país de la red GSM.
  • MNC: Identifica el operador de la red GSM .
  • MCC + MNC: La unión de los dos códigos forma el PLMN (public land mobile network), el cual representa a un único operador.

Continue reading