Recuperar número IMEI / número sim / número móvil a través del navegador móvil

El siguiente es el escenario: Tengo una aplicación web accesible a través del navegador móvil. Necesito detectar un dispositivo móvil IMEI y SIM IMSI cada vez que un usuario haga clic en el enlace en mi página de la aplicación accesible a través del navegador web. Esto es para rastrear el mismo dispositivo con la misma tarjeta SIM y proporcionarle el siguiente nivel de acceso. El usuario no puede rastrearse usando loginid ya que no hay ningún tipo de opción de inicio de sesión de usuario en mi página.

La pregunta es cómo obtener ID único dispositivo / sim id a través del navegador móvil para un dispositivo móvil específico. Por ahora me estoy centrando en dispositivos basados ​​androide móviles. Pero el objetivo es hacerlo genérico a los dispositivos.

Enfoque de la mayoría de las ideas es, ¿cuál es el tipo de acceso que un navegador tiene por teléfono y su aplicación?

  1. Desde un enlace de navegador, podemos abrir una aplicación local de la siguiente manera:

    <a href="productcateory://<productid>/<customerid>">Get Details</a> 

Aquí productcateory identificará de forma única una aplicación local y la invocará. Pero es una forma de comunicación. Cómo recuperar alguna respuesta desde el punto de invocación y rellenar dinámicamente algún campo de formulario oculto.

  1. A través de scripts de páginas web podemos almacenar algunos datos localmente en la máquina cliente y recuperarlos más tarde. Pero el alcance es limitado y no está conectado de ninguna manera al número IMEI o IMSI.

  2. ¿Hay una manera de obtener un gancho a la aplicación de navegador móvil (recuerda que es como cualquier otra aplicación móvil) de la página web y obtener los detalles de la identificación a través de scripts en mi página?

  3. ¿Hay alguna opción que html5 ofrece a este respecto? Sé que hay una etiqueta localstorage en HTML5 y se puede almacenar un id en la ubicación del cliente y recuperarlo más tarde. Pero esto se limita al mismo dispositivo y el mismo navegador móvil y también esta es una solución diferente para obtener el número imei / imsi

Hazme saber si hay alguna otra opción sin pedir al usuario que instale una aplicación local o un complemento de navegador en el dispositivo.

~ Inkriti

Por muy buenas razones es imposible que el navegador de Internet acceda a los números IMEI o IMSI de un teléfono móvil, sin un poco de hacking que los equipos de dev no esperaban.

Además, el navegador Android no admite plugins.

Su única opción es crear una aplicación nativa. Esta respuesta tiene información que te será útil: Obtenga el número de teléfono del teléfono Android mediante programación . No es una solución perfecta sin embargo.

También me preguntaría por qué desea acceder al número de teléfono de los usuarios. Si su sólo para realizar un seguimiento de la sesión sólo tiene que utilizar javascript para generar una identificación única y almacenar en una cookie.

 TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String number = tm.getLine1Number(); 

Y agrega este permiso siguiente a tu archivo de AndroidManifest.xml

 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

También puede utilizar la función getDefault ():

 String phoneNumber = TelephonyManager.getDefault().getLine1Number(); 

Pero esto también depende de la forma en que el número está codificado en la tarjeta SIM. Esto devuelve lo mismo que en Ajustes-> sobre el teléfono . Esto puede ser nulo si es desconocido

La única manera confiable es escribir una aplicación y hacer que envíe un SMS y después rastree el número en ese extremo; Suponiendo que el suscriptor tiene habilitado el servicio SMS / texto. Esto no funcionará en teléfonos que no sean teléfonos (tabletas).

No es importante, ni es necesario y es probablemente ilegal rastrear el dispositivo (IMEI); Simplemente rastree al suscriptor.

La edición original es probablemente cerrada, sin embargo para la referencia futura de cualquier persona (como mí) que viene a través de esta pregunta sería algo como el registro de 2 factores con la confirmación vía el texto. Lo más cercano a obtener un IMEI (imposible sin aplicaciones nativas) sería conseguir que el usuario se registre e incluya una confirmación de texto – el número de teléfono móvil en la mayoría de los casos será único, no único al cambiar dispositivos, y algunos supuestos pueden ser Hecha desde el lado del cliente para adivinar qué dispositivo tienen, incluso podría ir un paso más allá y pedirles que identifiquen la marca / os de su dispositivo si usted estaba preocupado por la singularidad-ness. Sin embargo, en la mayoría de los casos de uso, una confirmación de número de teléfono móvil

 TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); // get IMEI String imei = tm.getDeviceId(); String phone = tm.getLine1Number(); 

O prueba esto

 private String getMyPhoneNumber(){ TelephonyManager mTelephonyMgr; mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); return mTelephonyMgr.getLine1Number(); } private String getMy10DigitPhoneNumber(){ String s = getMyPhoneNumber(); return s.substring(2); } 

Pero no siempre es confiable en, por ejemplo, no dispositivo de teléfono. También necesitará agregar permiso "android.permission.READ_PHONE_STATE".

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.