¿Dónde almacena Android la configuración de "aplicación predeterminada para el tipo de archivo (abrir con)"?

¿Dónde almacena Android la configuración de aplicación predeterminada que conecta cada tipo de contenido con una aplicación designada? Me refiero a qué aplicación abre cada tipo de archivo o tipo de contenido, por lo que si tengo dos lectores de PDF y descargué un archivo PDF, Android usará uno de ellos sin permitir que el usuario elija.

Sé que puedo borrar la configuración predeterminada de una aplicación, pero no es lo que busco.

Quiero encontrar la tabla/base de datos/archivo que usa Android para esto. ¿Está en un archivo de base de datos sqlite? ¿Dónde se almacena?

depende de la aplicación, ya sea como preferencias compartidas que es xml o como sqlite... Creo que tienes que ser un poco más específico...
Supongo que lo que significa OP es: si quiero abrir, por ejemplo, un archivo de imagen y tener varios visores/editores de imágenes adjuntos, tengo la opción de marcar uno como "usar siempre esto". ¿Dónde almacena Android esta preferencia? No es por aplicación, tiene que ser una configuración de todo el sistema.
Aquí hay una pregunta de StackOverflow que pregunta casi lo mismo, pero para usar en el código. stackoverflow.com/questions/8626421/…
Dado que cada aplicación tiene la opción de borrar su configuración de asociación predeterminada, supongo que es un archivo por aplicación, pero no sé dónde está almacenado.
Esa sería la base de datos de la aplicación del iniciador, por ejemplo, uso ADW Launcher, y en eso, hay una tabla llamada favoritos, que contiene las intenciones de las aplicaciones y cómo manejarlas para diferentes aplicaciones de manejo similar, por ejemplo, dos lectores de PDF. No encontrarás eso dentro de Android mismo.

Respuestas (2)

En Jelly Bean, las actividades preferidas se almacenan en el archivo XML /data/system/users/0/package-restrictions.xmlpara el usuario principal. Otros usuarios tienen su ID de usuario en lugar de 0en esa ruta. Si el sistema de archivos cifrados está habilitado, comienza con /data/secure/systemen lugar de /data/system.

Excepto a través del PackageManagerservicio, este archivo solo puede ser accedido por root. Puede ver el código que lee y escribe el archivo (y así inferir el formato) en la clase com.android.server.pm.Settings.

Si tuviera un archivo de imagen en mi tarjeta SD, lo abriría a través de QuickPic porque ese es mi visor de galería predeterminado. Si quisiera cambiar mi visor de galería predeterminado, iría a Configuración -> Aplicaciones -> QuickPic -> "Borrar datos" y luego podría seleccionar cómo abrir un archivo de imagen nuevamente.

Por lo tanto, parece que Android almacena los datos de la aplicación predeterminada dentro de los archivos de datos del programa que se está utilizando.

Suposición inteligente, pero su conclusión es incorrecta. Si la configuración estuviera dentro del directorio de datos de la aplicación, la propia aplicación podría convertirse en predeterminada o no predeterminada. Además, el sistema tendría que leer el directorio de datos de cada aplicación para averiguar qué aplicación es la predeterminada.