Propósito de la página de detalles de la aplicación
Mi aplicación se basa en gran medida en una base de datos de datos y, a veces, la base de datos no se copia correctamente, se corrompe, o simplemente lanza un strop genérico. Limpiar los datos de la aplicación y volver a abrir la aplicación parece funcionar bien, pero es una tarea bastante pedir a mis usuarios que busquen las páginas de configuración y estoy buscando una manera de llegar rápidamente a la página de detalles de la aplicación Desinstalar, mover a SD, borrar datos, etc.)
He encontrado la acción Settings.ACTION_APPLICATION_DETAILS_SETTINGS
Intent pero obtengo una ActivityNotFoundException
cuando intento iniciarla como se describe en mi Desire Z. ¿Puede alguien ayudarme a cómo ordenar correctamente esto?
- "Error al entregar el resultado" - onActivityForResult
- La lógica detrás del sistema de intenciones de Android
- Cómo implementar beaviour de cierre de sesión en android
- Posibilidad de ver todos los Intents / Broadcasts en el teléfono
- BroadcastReceiver cómo iniciar una nueva intención
Gracias
EDIT: Como se indica en las respuestas, esto es sólo API9 y superior, el código que ahora uso si alguien quiere que esté por debajo. Creo que funciona en API3 y superiores.
try { Intent i = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); i.addCategory(Intent.CATEGORY_DEFAULT); i.setData(Uri.parse("package:com.espian.formulae")); startActivity(i); } catch (ActivityNotFoundException ex) { Intent i = new Intent(android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS); i.addCategory(Intent.CATEGORY_DEFAULT); startActivity(i); }
- Método de ContentValues put
- ¿Cómo obtener el valor de texto listitem cuando haga clic en él?
- intentando enviar la intención a otra aplicación: error SecurityException: Negación de permisos: Starting Intent
- Cómo abrir una segunda actividad al hacer clic en el botón de la aplicación android
- Intención no se abre en el siguiente código
- Eliminación de la pila de actividad completa de Android en SDK antiguos (que carecen de FLAG_ACTIVITY_CLEAR_TASK)
- Iniciar una intención de cámara, pero no guardar imagen
- Detección de la aplicación de destino al enviar un intento
Voy a publicar como respuesta aquí, además de mi comentario. Esa intención sólo está disponible a partir del nivel API 9 (2.3). El Desire Z no tiene 2.3 … todavía. 😉
Sé que esto es demasiado tarde respuesta, pero puede ayudar a alguien. Basado en la fuente de la plataforma (froyo), hago una función que abre la página de configuración de un paquete específico. Funciona en el emulador pero nunca lo probé en un dispositivo real. No sé si funciona en API <8 tampoco.
Aquí está:
public boolean startFroyoInstalledAppDetailsActivity(String packagename) { boolean result = false; Intent i = new Intent(); i.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); i.setAction(Intent.ACTION_VIEW); i.putExtra("pkg", packagename); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { cx.startActivity(i); result = true; } catch (Exception ex) { result = false; } return result; }
Basándome en tu código también hago una versión de Gingerbread que funciona en dispositivos reales con niveles de API 9, 10, 11, 12, 13, 14 y 15 pero se puede llamar de forma segura desde API 8 sin embargo en este caso se devolverá false.
Aquí está:
public boolean startGingerbreadInstalledAppDetailsActivity(String packagename) { boolean result = false; Intent i = new Intent(); i.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); i.addCategory(Intent.CATEGORY_DEFAULT); i.setData(Uri.parse("package:" + packagename)); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { cx.startActivity(i); result = true; } catch (Exception ex) { result = false; } return result; }
- ¿Cómo funciona AlarmManager.AlarmClockInfo en PendingIntent?
- ¿Qué causa este error de carga de APK de Android: "APK no actualizable"