3118839891 eb5077305b m #Android: identificando instalaciones y dispositivos

Android

Se comenta en las últimas entradas del blog de Android Developers el hecho que muchas veces es necesario identificar las instalaciones y los dispositivos en los que se instalan nuestras Apps. En el mundo #IPhone la cosa es relativamente más sencilla, ya que todo está “etiquetado”: hardware, software, Apple IDs…

En Android, la cosa es más compleja. Resumo a grandes rasgos las mejores maneras de identificar (hacer tracking) dispositivos y instalaciones.

Instalaciones de aplicación:

  1. Usar TelephonyManager.getDeviceId(): problema, ya que el sistema devolverá el IMEI, MEID, o ESN, pero no todos los dispositivos Android deben tener estos identificadores. Además, el ID no varia en distintos wipes (resets) y necesita permisos especiales (READ_PHONE_STATE).
  2. Utilizar un UID pseudo-aleatorio y registrarlo en el servidor: puede funcionar, pero existe una pequeña probabilidad de colisión entre identificadores.
  3. Con el modelo del punto 2, lo mejor sería utilizar el método UUID.randomUUID() que devuelva un UID único (RFC 4122)

Identificar dispositivos:

  1. Usar TelephonyManager.getDeviceId(), con el problema acabado de comentar.
  2. Utilizar la MAC Address del dispositivo: no muy recomendado, ya que no todos los dispositivos tienen un adaptador WIFI
  3. Utilizar la variable del sistema android.os.Build.SERIAL , pero sólo está disponible desde la versión 2.3 (GingerBread)
  4. Variable Settings.Secure.ANDROID_ID , disponible desde la versión 2.2 (Froyo), parece la mejor elección
, , , , , , ,
300px SIP signaling #Android #2.3 #Gingerbread cambios #API
Image via Wikipedia

Ya tenemos Android 2.3 (aka Gingerbread), API level 9, así que nos toca merendar : )_

Llevábamos ya unos días esperando la release de la versión 2.3 de Android para echar un ojo a los cambios añadidos
a la SDK, en una primera ojeada no tiene mala pinta, aunque habrá que analizar con calma.
Describo superficialmente cuáles son algunas de las nuevas aportaciones que tendremos en el SDK:

Voz IP vía protocolo SIP (Session Initiation Protocol)

Esto nos permitirá crear aplicaciones que utilicen la telefonía y videoconferencia a través de Internet.
Obviamente, aquí entrarán en juego las queridas operadoras teléfonicas (siempre al acecho…) que empezarán a poner
zancadillas a base de limitación de datos y amenaza de bajar la velocidad de la línea…si quieres llamar, a pagar
una tarifa de voz…necesario?
Lo encontraremos en el package android.net.sip, y necesitaremos de un nuevo permiso: <uses-permission android:name=”android.permission.USE_SIP”>

NFC (Near Field Communication)

Muy interesante el soporte para NFC, que precisamente hace poco me comentaban los amigos del Centro Tecnológico
Leia-Tecnalia, en Vitoria. Esto permite entre otras la lectura automática de etiquetas utilizando radiofrecuencia.
Es decir, pasamos el dispositivo por la etiqueta y listo, información recibida. Promete bastante, sobretodo por el futuro pago con el móvil que se espera empezar a ver pronto.

El package: android.nfc y el permiso: <uses-permission android:name=”android.permission.NFC”>

Soporte para nuevos sensores: giróscopo, gravedad, barómetro…

Si buscamos en la clase Sensor, vemos que algunas de las constantes añadidas han sido: TYPE_GRAVITY, TYPE_LINEAR_ACCELERATION,
TYPE_ROTATION_VECTOR.

Soporte para múltiples cámaras

Ampliación de la API para consultar el número de cámaras disponibles y seleccionar la que se prefiera. Esto es interesante ya que se están empezando a ver las típicas cámaras frontales, que posiblemente se utilizarán para videoconferencia, entre otras.

Efectos de sonido

El media framework añade soporte para modificar audio y añadir efectos añadidos en las pistas. Personalmente, no estoy demasiado metido en este framework, si bien seguro que añade mucho valor, especialmente para los creadores de juegos.
El package: android.media.audiofx

Download Manager

Api para pedir al sistema que descargue algo de una URL y lo mueva a una ubicación determinada. Como la mayoría de managers, se puede acceder a él a través de la llamada getSystemService(String servicio).

StrictMode

Interesante novedad, en la que el desarrollador puede ser notificado en el caso de que la aplicación pueda degradar
el rendimiento. Se pueden configurar los temas que se quieren monitorizar: lecturas y escrituras en disco, red, log, sql…

Soporte para pantallas “extra largas” (aka tabletPC)

Se puede indicar que la aplicación se va a ejecutar en este tipo de pantallas con <supports screens … android:xlargeScreens=”true”>, y se dispone de un nuevo qualifier en los rescursos:  (xlarge)

Content Providers

Se han añadido:

AlarmClock: gestión de alarmas dentro de nuestros componentes de aplicación.
MediaStore: soporte de una nueva acción (PLAY_FROM_SEARCH) que permite escuchar un audio directamente de una búsqueda.
Settings: cambios que permiten a la aplicación consultar los detalles de pantalla.
ContactsContract: se añaden nuevos campos para añadir el SIP (telefonía vía Internet)

Ubicación:

Cambios en las notificaciones de ubicación y criterios (Criteria) para los componentes de aplicación.

Almacenamiento:

Soporte para OBB (no totalmente soportado) y virtual SDCard.

Package Manager:

Nuevas constantes y métodos para saber si es la primera vez que se instala la aplicación, última actualización, etc.

android y gingerbread 300x148 #Android #2.3 #Gingerbread cambios #APIAcceso nativo al ciclo de vida de la Activity:

NativeActivity, que implementa directamente los métodos de callback (onCreate,onPause…)

DalvikRuntime:

Se eliminan clases anteriormente deprecadas y se añaden modificaciones en algunas clases del core:

ArrayQueue, NavigableMap, ConcurrentSkipListMap, LinkedBlockingDeque, CookieManager (HttpURLConnection)…

Todo esto, más unos cuantos cambios en la UI y en la parte gráfica (OpenGL ES 2.0), nuevos tags en el Manifest.xml y nuevos permisos…

Se pueden ver una lista completa de los cambios en la página oficial de developers

Ahora sólo queda echarle un ojo a todo y ver cómo se pueden explotar estos cambios…mientras tanto, en SlashMobility seguimos dándole caña a los cursos de Android y veremos que cosas interesantes añadimos a la formación (-:

Mientras tanto, esperaremos a Android 3.0, de la que sabemos que empezara por H icon smile #Android #2.3 #Gingerbread cambios #API

, , , , ,