Wo speichert Android die Standardanwendungseinstellungen, die jeden Inhaltstyp mit einer bestimmten Anwendung verbinden? Ich meine, welche Anwendung jede Art von Datei oder Inhaltstyp öffnet. Wenn ich also zwei PDF-Reader habe und eine PDF-Datei heruntergeladen habe, verwendet Android einen davon, ohne dass der Benutzer eine Option auswählen kann.
Ich weiß, dass ich die Standardeinstellungen einer Anwendung löschen kann, aber es ist nicht das, wonach ich suche.
Ich möchte die Tabelle / Datenbank / Datei finden, die Android dafür verwendet. Befindet es sich in einer SQLite-Datenbankdatei? Wo ist es gelagert?
Antworten:
Auf Jelly Bean werden die bevorzugten Aktivitäten in der XML-Datei
/data/system/users/0/package-restrictions.xml
für den primären Benutzer gespeichert . Andere Benutzer haben ihre Benutzer-ID anstelle von0
in diesem Pfad. Wenn das verschlüsselte Dateisystem aktiviert ist, beginnt es mit/data/secure/system
anstelle von/data/system
.Anders als über den
PackageManager
Dienst kann auf diese Datei nur über root zugegriffen werden. Sie können den Code sehen, der die Datei liest und schreibt (und somit das Format ableitet), in der Klassecom.android.server.pm.Settings
.quelle
Wenn ich eine Bilddatei auf meiner SD-Karte hätte, würde ich sie über QuickPic öffnen, da dies mein Standard-Galerie-Viewer ist. Wenn ich meinen Standard-Galerie-Viewer wechseln wollte, ging ich zu Einstellungen -> Apps -> QuickPic -> "Daten löschen" und konnte dann auswählen, wie eine Bilddatei erneut geöffnet werden soll.
Daher scheint Android die Standardanwendungsdaten in den verwendeten Datendateien des Programms zu speichern.
quelle