Android: Standard-Home-Anwendung ändern

für eine bestimmte Anforderung muss ich die Android-Standardanwendung "Home" mit meiner benutzerdefinierten Anwendung "Home" ändern (eine Einstellung in meiner App, mit der die Standardanwendung "Home" = "Meine Anwendung" oder "Vorherige Startseite" umgeschaltet wird).

Ich möchte nicht, dass der Benutzer sehr komplizierte Android-Einstellungen vornimmt.

Kann mir jemand helfen, wie wo es launcher.apk für die Standard-Home-Anwendung registriert oder wie man das ändert

as einzige, was ich finden konnte, war diese alte Frage:Wie ändere ich die Standard-Desktop-Anwendung von Android?

aber überhaupt keine Antworten.

Ich habe HomeSwitcher auf dem Markt gesehen, die den Trick machen, aber keine Antwort für den Entwickler, der mit Sicherheit beschäftigt sein könnte.

BEARBEITE

Ich habe das im Web gefundenhttp: //www.mail-archive.com/[email protected]/msg74167.htm

Aber ich habe das gleiche Problem:

dies ist mein Code:

    private void makePreferred() {
            PackageManager pm = getPackageManager();
            IntentFilter f = new IntentFilter("android.intent.action.MAIN");
            f.addCategory("android.intent.category.HOME");
            f.addCategory("android.intent.category.DEFAULT");
            ComponentName cn = new ComponentName("com.example.android.home", "com.example.android.home.Home");
            pm.addPreferredActivity(f, IntentFilter.MATCH_CATEGORY_EMPTY, null, cn);

Ich habeandroid.permission.SET_PREFERRED_APPLICATIONS im Manifest setzen. Nach der Ausführung des obigen Codes wurden die Protokolle wie erwartet hinzugefügt (dieselben Protokolle, als ich "Als Standard festlegen" in der Liste von IntentResolver ankreuzen wollte). Wenn ich jedoch auf "Home" klicke, wird die Liste weiterhin angezeigt und in den Protokollen steht:

INFO/PackageManager(52): Result set changed, dropping preferred
activity for Intent { act=android.intent.action.MAIN cat=
[android.intent.category.HOME] flg=0x10200000 } type null

So scheint es, dass der Resolver den Standardeintrag löscht. Mache ich etwas falsch oder ist das eine Sicherheitsmaßnahme? Welche Ideen stecken dahinter?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage