Ich habe eine Anwendung mit den folgenden Zeilen in der AndroidManifest:
%Vor%Meine Frage ist: Ist es möglich, diese Optionen programmgesteuert festzulegen? Ich meine, einige Benutzer können die oben genannten Optionen aktivieren oder deaktivieren.
Was das bedeutet, ist meine App als Startprogramm zu behalten.
Also, ist es möglich, eine Bedingung zu stellen, damit ich es abhängig vom Benutzer machen kann?
EDITION: Ich habe diese Frage bearbeitet, um den Vorschlag von Rawr hinzuzufügen.
Hier ist, was ich mache, bevor ich meine Hauptaktivität anrufe:
%Vor%Wenn ich diese Befehle in meinem Manifest verwende, funktionieren sie. Man kann meine App nicht durch Drücken der Home-Taste verlassen. Das manuelle Hinzufügen von Kategorien wie oben funktioniert nicht.
Irgendwelche Vorschläge?
Vielen Dank im Voraus!
Wenn Sie eine intent
erstellen, können Sie addCategory
für bestimmte Kategorien für diese Absicht verwenden. Laut der Android-Dokumentation werden beim Auflösen dieser Absicht nur Aktivitäten bereitgestellt, die alle angegebenen Kategorien enthalten verwendet werden. Also zum Beispiel wenn du es gemacht hast
Sie können die Startseite und die Standardkategorie zu Ihrer Absicht zusammen mit anderen benutzerdefinierten Kategorien hinzufügen. Was du damit machst, liegt an dir. Ich kann nicht sagen, was der Zweck der Absicht ist, also werde ich es dabei belassen.
Was das Verhalten angeht, das in Ihrem Kommentar enthalten ist, denke ich, dass dies mit der Notwendigkeit eines Intent-Filters zusammenhängt. Das Festlegen der Kategorie einer Absicht führt nur dann zu einem großen Erfolg, wenn Sie immer noch den Filter einschließen, der auf diese Kategorie reagiert.
%Vor%Wenn Sie einen Intent-Filter in Ihrem Manifest einstellen, hören Sie gezielt nach den Kategorien, die Sie programmatisch festgelegt haben. Aus diesem Grund benötigen Sie die entsprechenden Kategorie-Tags in Ihrem Manifest, um die Absicht zu erfassen.
Ich bin auf eine andere Art und Weise, dies zu tun, gestoßen - im Wesentlichen können Sie nicht genau das tun, was Sie fragen, aber Sie können bestimmte Activities
Ihrer App deaktivieren / aktivieren.
Sie könnten also Ihre Home-App standardmäßig deaktiviert haben, und wenn ein Benutzer sie verwenden wollte, könnte sie dies programmatisch aktivieren.
Meine Informationen stammen aus der folgenden Antwort von @Commonsware, die ich hier vervielfältige:
Sie können <intent-filter>
s nicht programmgesteuert aktivieren, deaktivieren oder erstellen.
In Ihrem Fall haben Sie jedoch nur eine <intent-filter>
pro Komponente. In diesem Fall können Sie die -Komponente programmgesteuert über PackageManager
und setComponentEnabledSetting()
aktivieren und deaktivieren. In Ihrem Fall hätte das Aktivieren oder Deaktivieren der Aktivität den gleichen grundlegenden Effekt wie das Aktivieren oder Deaktivieren von <intent-filter>
.
Tags und Links android android-intent