¿Cómo detecta exactamente una aplicación si se instaló antes o no en los teléfonos / tabletas Android actuales?

Para ver si mis aplicaciones se instalaron anteriormente o no, lo hago de esta manera:

  1. Android le permite almacenar la configuración de su aplicación (o algún otro dato, como decir si el usuario desea que la aplicación se inicie en el arranque o cualquier otra opción de casilla de verificación en la que haga clic, etc.) en algo conocido como SharedPreference . Este archivo tiene un nombre de cadena (nombre del campo) y su valor correspondiente . [En el ejemplo anterior de comenzar en el arranque, nombre del campo = “start_at_boot” (digamos), valor = “verdadero” ]
  2. En su aplicación, puede programar para leer los valores del archivo SharedPreference cuando sea necesario. Mientras lee, puede definir un valor predeterminado si el nombre del campo no está disponible de inmediato. [ Ejemplo anterior: Digamos que mi archivo SharedPreference se refiere con el nombre de variable “prefs” boolean start = prefs.getBoolean (“start_at_boot”, true). Aquí verdadero es el valor predeterminado si no se encuentra el nombre de campo “start_at_boot”]
  3. Entonces, cuando comienzo mi actividad Principal (la primera pantalla de la aplicación), si esta es la primera vez que se instala la aplicación, obviamente ni siquiera tiene el archivo SharedPreference hecho. Hago una comprobación si un campo que dice ” first_run ” está presente o no, con un valor predeterminado verdadero . Obviamente el campo no está presente, por lo que me devuelve cierto. Hago el trabajo necesario, luego inicializo el campo “first_run” con falso.
  4. Dado que “first_run” ahora se inicializa con false, ahora cada vez que verifico su valor, no devolverá el valor predeterminado y me pasará false.

Simple derecho?

Código:

SharedPreference prefs = getSharedPreference (“main_preference_file”, Context.MODE_PRIVATE);

SharedPreference.Editor editor = prefs.edit ();

boolean fr = prefs.getBoolean (“first_run”, verdadero);

si (fr)

{

// Esta es la primera ejecución, haz lo que sea necesario

editor.putBoolean (“first_run”, falso);

editor.commit ()

}

No todas las aplicaciones hacen eso. Pero hay muchas aplicaciones que lo hacen, especialmente aquellas aplicaciones que dan dinero de referencia gratis o que tienen programas de afiliación.

Después de instalar esa aplicación en su teléfono. Aprende el modelo de su teléfono, el nombre de la compañía, los detalles de su tarjeta SIM, la dirección Mac, la dirección IP, la ID de Android, el número IMEI. Ahora sincronizan esos datos con su servidor. Después de reinstalar esa aplicación, sus datos coinciden con los datos anteriores que la aplicación recopiló anteriormente. Así es como detectan si la aplicación se instaló antes.

Si cambia su ID de Android, su número IMEI y luego instala esa aplicación … La aplicación no podrá detectar que la instaló anteriormente. Pensará que la primera vez que instalas te dará crédito.

Gracias.

Surajit Bhowmik

Sígueme para más cosas técnicas

No es la aplicación en sí, sino los Servicios de Google Play los que mantienen los datos de instalación. Una aplicación se limita a su propia funcionalidad, cualquier otra cosa se maneja con un servicio de Google.