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?
- iPhone5S como modelo de dispositivo Android en Playstore Device Listing?
- Cómo crear una compra en la aplicación para actualizar la versión gratuita a la versión de pago de Android
- Android: respuesta de la actividad del mercado
- ¿Los desarrolladores de Android pagan sin tarjeta de crédito?
- ¿Cómo usar la instalación de referencias de seguimiento de Google Analytics desde Google Play?
- Google Play Store: la aplicación no requiere ningún permiso especial adicional
- android: <soportes-pantallas> Etiqueta
- Estrategia de licencias de Android para publicar en Google Play y en la tienda de aplicaciones de Amazon
- Programación de una publicación en Google Play Android Market
- ¿Cómo libera dos versiones de una aplicación en el Market?
- ¿Qué significa este mensaje de error de publicación de Google Play APK?
- Aplicaciones de Android, sideloading y mantenerlas actualizadas a través de Google Play
- ¿Cambia el nombre de la aplicación en Google Play Store según el idioma del teléfono del usuario?
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.
- Error: Error de ejecución para la tarea ': app: mergeDebugResources'. > Java.lang.ArrayIndexOutOfBoundsException (sin mensaje de error)
- Rxjava2 + Retrofit2 + Android. La mejor manera de hacer cientos de llamadas de red