Was auch immer Ihr Home-Bildschirm ist, hat spezielle Haken für was auch immer Ihre Kalender-App und was auch immer Ihre Wecker-App ist. Im Allgemeinen können Apps ihre Symbole nicht aktualisieren.
Was meinst du mit Haken?
Zum Beispiel kann Samsung eine Samsung Kalender App auf Samsung-Geräten versenden. Samsungs Home-Bildschirm auf denselben Samsung-Geräten kann spezielle Regeln zum Rendern eines Symbols für die Samsung Kalender-App enthalten, Regeln, die die Anzeige des Tages des Monats beinhalten. Dies liegt daran, dass Samsung den Startbildschirm geschrieben hat. Wenn Sie den Startbildschirm eines Drittanbieters installieren, wird möglicherweise nicht dasselbe ausgeführt. Schließlich kann ich in etwa einer Stunde einen Homescreen schreiben, und ich bin ziemlich zuversichtlich, dass ich für die Kalender-App von Samsung nichts Besonderes machen muss.
Es gibt nichts, was Samsung daran hindert, irgendeine Art von API zu veröffentlichen, die es Entwicklern ermöglicht, sich in Samsungs Home-Bildschirm einzuklinken und es über diese Art von Dingen zu informieren. Ob Samsung beabsichtigt für Dritte zu verwenden, dass API, oder ob es jemand ist, der hackt, wie Samsung es für ihre eigenen Apps tut, kann ich nicht sagen.
(BTW, ich bin unter Berufung auf Samsung hier als mögliches Beispiel - ich weiß nicht, dass sie tatsächlich haben, diese Art von Funktion, und wenn ja, auf welche Geräte sie es haben)
ich mich zu erinnern, dass jemand ein GitHub-Projekt hat, das versucht, die proprietären APIs verschiedener Homescreens zu umhüllen. IIRC, einige unterstützte Funktionen entweder Ersetzen des App-Symbol oder Hinzufügen eines Badge (z. B. ungelesene Nachricht Anzahl). Allerdings:
Nur ein kleiner Prozentsatz der Geräte werden diese proprietären APIs
Undocumented und nicht unterstützte APIs, entdeckt durch Reverse-Engineering-Anwendungen unterstützen, können Änderungen unterliegen und auf unerwartete Weise brechen
Ich bin ziemlich sicher, dass es im Android SDK nichts gibt, das dynamische App-Symbole unterstützt. Die einzige Sache, von der ich weiß, dass Leute versucht haben, benutzt <activity-alias>
, um N verschiedene "Tätigkeiten" zu haben, die alle auf die gleiche Implementierung zeigen, aber unterschiedliche Ikonen haben. Unter Verwendung von PackageManager
und setComponentEnabledSetting()
deaktiviert die App den alten Launcher-Alias und aktiviert einen anderen, in der Hoffnung, dass die Home-Bildschirme dies übernehmen und das neue Symbol anzeigen. Einige tun es. Andere würden nur bei einem Neustart von der Änderung erfahren.
Um das Problem umzudrehen, kann ich einen Startbildschirm schreiben. Vielleicht möchte ich Apps einen Weg bieten, ihre Icons im laufenden Betrieb zu ändern, obwohl es dafür keine Standards gibt. Vielleicht nicht.Vielleicht beabsichtige ich gar nicht, Icons zu verwenden, da mein Home-Bildschirm für Sehbehinderte optimiert ist, und so verwendet er Text-to-Speech- und Hardwareschlüssel-Eingaben. Es ist meine Home-Screen-Implementierung, und ich kann tun, was ich will.
Entweder Sie betrachten ein App-Widget, oder was auch immer Ihr Startbildschirm ist, hat spezielle Haken für was auch immer Ihre Kalender-App ist. Im Allgemeinen können Apps ihre Symbole nicht aktualisieren. "aber meins ist anders" - dann erklären Sie bitte, ** im Detail **, was die anderen Fragen waren und warum Ihre Frage anders ist. – CommonsWare
@CommonsWare Ich habe gerade meinen Text geändert. Wie Sie in der Frage sehen können, ist das kein Widget, sondern das App-Icon. Und es ändert sich im Home-Bildschirm und auch im Menü. –
Dann, was auch immer Ihr Home-Bildschirm ist, hat spezielle Haken für was auch immer Ihre Kalender-App ist und was auch immer Ihre Wecker-App ist. Im Allgemeinen können Apps ihre Symbole nicht aktualisieren. – CommonsWare