Schlagworte:
  1. behemel, 06.05.2019 #1
    behemel

    behemel Threadstarter Neuer Benutzer

    Hi Leute,

    ich mache einen Android-Launcher. Er ist eigentlich schon fertig. Ich hätte nur gern auf dem Home-Screen bei den App-Icons kleine Nummern (Badge Icons). So sieht man z.B bei Facebook, WhatsApp etc wenn neue Nachrichten angekommen sind, weiß jemand wie das geht? Hab schon folgendes probiert aber nichts funktioniert davon:

    Manifest:

    <receiver android:name=".MyBroadcastReceiver" android:exported="true">
    <intent-filter>
    <action android:name="com.sonyericsson.home.action.UPDATE_BADGE"/>
    <action android:name="android.intent.action.BADGE_COUNT_UPDATE"/>
    </intent-filter>
    </receiver>


    BroadCastReceiver:

    public class MyBroadcastReceiver extends BroadcastReceiver {
    private static final String TAG = "MyBroadcastReceiver";
    @override
    public void onReceive(Context context, Intent intent) {

    StringBuilder sb = new StringBuilder();
    sb.append("Action: " + intent.getAction() + "\n");
    sb.append("URI: " + intent.toUri(Intent.URI_INTENT_SCHEME).toString() + "\n");
    sb.append("App: " + intent.getStringExtra("badge_count_package_name") + "\n");
    sb.append("Class: " + intent.getStringExtra("badge_count_class_name") + "\n");
    sb.append("Count: " + intent.getStringExtra("badge_count") + "\n");
    String log = sb.toString();
    System.out.println(TAG + log);

    }
    }
     
  2. swa00, 07.05.2019 #2
    swa00

    swa00 Moderator Team-Mitglied

    Hallo , das geht nicht so einfach , wie du das oben umgesetzt hast .

    Es ist auch zum größten Teil Device und Betriebssystem abhängig und erfordert mehr als nur ein Intent oder Broadcast.
    Desweitern musst du die external App Icons auswechseln

    Siehe auch hierzu auch als Beispiel
    leolin310148/ShortcutBadger

    Daraus kannst du die Technik gut ableiten
     
    Zuletzt bearbeitet: 07.05.2019
  3. behemel, 07.05.2019 #3
    behemel

    behemel Threadstarter Neuer Benutzer

    Danke schonmal für die Antwort. aber ich glaube, dieser Shortcut-Badget macht wieder genau das Gegenteil:

    Wenn ich eine App habe und das App-Icon auf dem HomeScreen ist, kann ich ein kleines Symbol an dem HomeScreen-Icon meiner App zeigen (in diversen Launchern)

    Ich möchte aber das Gegenteil:

    Ich habe aber einen eigenen Android-Launcher (HomeScreen-App) gemacht, wo viele Symbole von diversen Apps gezeigt werden die Starten wenn man drauf tippt, diese möchte ich mit kleinen Nummern versehen wenn es Notifications für die jeweilige App gibt
     
  4. swa00, 07.05.2019 #4
    swa00

    swa00 Moderator Team-Mitglied

    Ich denke , wir haben uns schon richtig verstanden :)

    Du hast deinen eigenen Home Launcher, indem du das Icon der externen Apps extrahierst und dann als ShortCut anzeigst , richtig ??
    Nun möchtest du in diesen Shortcuts ein Batch anzeigen lassen - richtig ?

    Dazu musst du wie im obigen source verdeutlicht, die Icons zur Runtime auswechseln.
    (Du kannst nicht mit Layern arbeiten)
    Vorher dir natürlich aus dem Resolver die Anzahl ermitteln.
     
  5. behemel, 07.05.2019 #5
    behemel

    behemel Threadstarter Neuer Benutzer

    Das ist aber das Code-Beispiel das du gepostet hast:

    ShortcutBadger: [​IMG]

    The ShortcutBadger makes your Android App show the count of unread messages as a badge on your App shortcut!
     
  6. swa00, 07.05.2019 #6
    swa00

    swa00 Moderator Team-Mitglied

    Ja richtig , ich habe auch explizit dazu geschrieben :

    Es diente Dir als Hilfe , wie du es umsetzen kannst - es bedeutete nicht , dass du es
    1:1 nehmen kannst und der Käse gegessen wäre ...

    Schliesslich möchtest du deine eigenen Listener verwenden , da du deinen eigenen HomeLauncher nimmst.
     
  7. behemel, 07.05.2019 #7
    behemel

    behemel Threadstarter Neuer Benutzer

    Ja, das habe ich schon verstanden, aber ich glaube dennoch dass wir aneinander vorbeireden (oder schreiben :D)

    Die Codebeispiele zeigen, wie ich eine App machen kann, die in allen möglichen Launchern ein Badge-Icon zeigen kann.

    Ich möchte aber z.B von Facebook den Broadcast "Hey, ich bin Facebook, du hast 3 neue Notifications" oder von Whatsapp
    "Hey, ich bin WhatsApp, du hast 5 ungelesene Nachrichten".

    Diese Broadcasts der installierten Apps möchte ich erhalten.

    In den CodeBeispielen sehe ich zwar, wie der ShortcutBadger Intents raussendet, aber ich sehe nirgendwo wie ein HomeScreen-Launcher diese
    empfangen und verarbeiten kann
     
  8. swa00, 07.05.2019 #8
    swa00

    swa00 Moderator Team-Mitglied

    Okeee , dann von Vorne :)

    a) Zum wechseln der Icons , sprich einen Batch dem Icon hinzuzufügen, musst du in deinem Launcher zu Runtime das Icon austauschen.
    b) Im obigen Source wird z.b. sehr deutlich dargestellt , wie du an die "unread" messages herankommst.
    Das wird dadurch erreicht , indem du über den ContentResolver und dem PackgeName der entsprechenden App an die Anzahl herankommst
    c) Als Trigger für Veränderungen fängst du die Notifies der Packages ab.

    Ob du nun von rechts nach links oder umgekehrt gehst - sollte dir das Beispiel verdeutlichen
     
  9. behemel, 07.05.2019 #9
    behemel

    behemel Threadstarter Neuer Benutzer

    Dann verstehe ich aber nicht, warum mein Code-Beispiel zu wenig sein soll, oder nicht funktioniert.

    die Beispiele von oben senden ein Intent "android.intent.action.BADGE_COUNT_UPDATE" raus mit einer Zahl "badge_count" und dem App-Namen "
    badge_count_package_name".

    Die diversen Launcher hören dann auf diesen Broadcast und pinnen die kleine Nummer an die jeweilige App (alles Logisch)

    Mein Launcher hat aber auch einen BroadCastReceiver der genau auf "android.intent.action.BADGE_COUNT_UPDATE" filtert, aber der springt nie an, auch wenn in WhatsApp eine neue Nachricht kommt.
     
  10. swa00, 07.05.2019 #10
    swa00

    swa00 Moderator Team-Mitglied

    Ich meine irgendwo mal gelesen zu haben , dass man - je nach Android - Version- eher die Notifies triggern soll.

    P.S Register mal den Receiver rein Program- mäßig (IntentFilter) und schau mal dann was passiert
    (Also aus Manifest raus)
     
  11. behemel, 07.05.2019 #11
    behemel

    behemel Threadstarter Neuer Benutzer

    ok. danke soweit. topic closed ^^

    mein code hat soweit gestimmt, nur debugger + system.out haben nichts gemacht weil ich den receiver in der manifest definiert hatte.

    den receiver im code zu definieren hat dann geholfen :1f44d: (und logcat ansehen)
     
    swa00 bedankt sich.
  12. swa00, 07.05.2019 #12
    swa00

    swa00 Moderator Team-Mitglied

    Ach schon wieder eine gute Tat :)

    Dir viel Erfolg beim "Fertigstellen" :)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
APP-Name gesucht Android App Entwicklung 25.05.2019
Eigene App statt Google Assistant starten Android App Entwicklung 15.04.2019
Eigene App auf Smartwatch installieren klappt nicht Android App Entwicklung 08.11.2018
Blogbeitrag - wie Google’s FCM durch ihr eigenes Benachrichtigungssystem ersetzten! Android App Entwicklung 13.09.2018
Datenschutzerklärung bei eigener App (ohne Erhebung von Daten) Android App Entwicklung 30.08.2018
String als Datei (eigene Dateiendung) sharen Android App Entwicklung 09.08.2018
Notification Channel - Eigene Sounds bzw. Sounds einschränken Android App Entwicklung 27.07.2018
ListView mit eigenem Layout zeigt im Querformat Items doppelt an Android App Entwicklung 24.06.2018
Du betrachtest das Thema "Badge Icon für eigenen Launcher?" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.