Requiere que los usuarios desinstalen la versión anterior de la aplicación de Android en la actualización

Mi cliente tiene una aplicación que se publica en Google Play y estamos en el proceso de publicar una actualización. Mucho ha cambiado en la aplicación y debido a los desarrolladores anteriores no mantener el código que se ven obligados a hacer una instalación limpia para conseguir que la aplicación funcione (sin pasar innumerables horas rastrear los cambios y escribir scripts de migración).

¿Hay una manera de forzar a los usuarios a desinstalar-reinstalar (o desinstalar automáticamente-reinstalar) la aplicación en una actualización?

Por lo que sé, no hay manera de hacer exactamente lo que pediste. Pero, si sólo hay cambios en la base de datos, sólo puede cambiar el nombre del archivo de base de datos para que su aplicación comience a usar un nuevo archivo de base de datos e ignore la antigua.

Ejemplo:

 // in your DatabaseHelper constructor private DatabaseHelper(Context context) { super(context, "new_database.db", null, DB_VERSION); } 

Parece que casi sólo desea deshacerse de sus datos almacenados. Además de eliminar sólo todos los archivos que tiene en los directorios de datos de paquetes, también podría borrar los datos que no desea tener más.

 if (shouldClearData()) { for (String name: databaseList()) deleteDatabase(name); for (String name: PREFERENCE_FILES) getSharedPreferences(name, MODE_PRIVATE).edit().clear().apply(); } 

Sí, si la aplicación sólo está en Google Play, puede obligar a los usuarios a desinstalarlos ya reinstalarlos.

Solo tienes que probar la presencia de cualquier variable de almacenamiento no volátil que siempre estará presente en la aplicación antigua y no en tu aplicación actualizada (si está instalada recientemente) en tu método onResume ().

Si está presente, coloque un cuadro de diálogo no cancelable que tiene un botón que enlaza a la página de la aplicación en Play Store, con las instrucciones para presionar el botón, luego el botón Desinstalar en la página de tienda y luego el botón Instalar en esa misma página de tienda .

Esto no quiere decir que forzar una nueva instalación es una buena idea; Es sólo una respuesta a la pregunta como se publicó.

Si desea eliminar todos los datos de usuario de su aplicación, puede utilizar el código a continuación.

 public static void clearApplicationData() { File cache = getInstance().getCacheDir(); File appDir = new File(cache.getParent()); if (appDir.exists()) { String[] children = appDir.list(); for (String s : children) { deleteDir(new File(appDir, s)); } } } public static boolean deleteDir(File dir) { if (dir != null && dir.isDirectory()) { String[] children = dir.list(); for (int i = 0; i < children.length; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } } return dir.delete(); } 

Donde getInstance() es su instancia de clase de Application

Espero que esto te ayudará.

Si sólo desea borrar todos los datos almacenados en la base de datos, puede aumentar el número de versión de la base de datos. Android eliminará automáticamente todos los datos de la versión anterior. Pero realmente no recomiendo eso porque usted quitará todos los datos del usuario relacionados con su uso y esto podría causar a usuarios muy enojados que no utilizarán su nueva aplicación.

  • Soporte de pantalla de manifiesto Entrada sólo para dispositivos y sólo para tabletas
  • ¿Para qué versión de Android debo desarrollar?
  • ¿Cómo publicar una actualización de la aplicación en android-market sin borrar la base de datos local y los archivos locales?
  • Android "El método de pago ha sido rechazado" para cada método de pago
  • ¿Por qué Cordova / Phonegap agrega 8 a mi código de versión de Android?
  • ¿Cómo hacer que una aplicación no sea descargada por los usuarios de Android KitKat?
  • APKs para retener en la Consola del programador de Google Play
  • ¿Se puede probar una aplicación de pago en alpha / beta de forma gratuita?
  • Android Studio - emulador: cómo probar API 15 x86 API de Google
  • ¿Los nombres de las aplicaciones de Android deben ser únicos?
  • ¿Implementar la aplicación a través de Google Play Store en un canal privado sin Google Apps?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.