A partir de Android 10 (API nivel 29), el acceso programático a identificadores como el IMEI, MEID y el número de serie del dispositivo ha sido fuertemente restringido. Esto afecta a muchas aplicaciones que ya no pueden recuperar esta información directamente.
Para solucionar este problema, Urmobo MDM implementó un método seguro que permite a los clientes seguir accediendo a estos identificadores a través de nuestra aplicación, cumpliendo con las nuevas políticas de privacidad de Android.
📲 Solicitar la Información del Dispositivo a Urmobo MDM
El primer paso es enviar un Intent a Urmobo solicitando los datos del dispositivo, como se muestra a continuación:
Intent request = new Intent("com.urmobo.mdm.GET_DEVICE_DATA");
request.setPackage("com.urmobo.mdm");
// Crear el PendingIntent para recibir la respuesta
Intent replyIntent = new Intent("com.cliente.RESPONSE_INFO");
PendingIntent replyPending = PendingIntent.getBroadcast(
context, 0, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
);
// Adjuntar el PendingIntent al Intent original
request.putExtra("UrmoboReply", replyPending);
// Enviar el broadcast
context.sendBroadcast(request);
📥 Recibir la Respuesta
Una vez que Urmobo MDM procesa la solicitud, devuelve los datos a la app solicitante. Para recibir esta información, se debe registrar un BroadcastReceiver como el siguiente:
BroadcastReceiver responseReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String id = intent.getStringExtra("UrmoboID");
String imei = intent.getStringExtra("IMEI");
String serial = intent.getStringExtra("SerialNumber");
}
};
IntentFilter filter = new IntentFilter("com.cliente.RESPONSE_INFO");
context.registerReceiver(responseReceiver, filter);
🔁 Personalizar la Acción
El valor "com.cliente.RESPONSE_INFO" puede (y debe) ajustarse según el nombre del paquete de tu aplicación o la acción que desees definir. Esto garantiza que el receptor escuche únicamente los broadcasts esperados.
Con este mecanismo, es posible recuperar de forma segura:
- UrmoboID (identificador único generado por Urmobo)
- IMEI(s) (si hay más de uno, estarán separados por
;) - Número de serie del dispositivo
Esta solución permite seguir utilizando identificadores críticos, respetando las nuevas restricciones impuestas por Android. ✅