Programmiert die Kategorie Intents

8

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!

    
Carlos Pereira 08.05.2013, 17:20
quelle

2 Antworten

5

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

%Vor%

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.

    
Rarw 08.05.2013 18:38
quelle
3

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> .

Richard Le Mesurier 04.09.2013 11:02
quelle

Tags und Links