Lässt Prioritäts-Nachrichten ("PING") von BBM Enterprise auch bei stummgeschaltetem Telefon hörbar durchkommen — als frei einstellbares Ton-Muster, nicht nur eine Vibration.
BBM Enterprise selbst spielt bei einer Prioritäts-Nachricht keinen Ton mehr ab, sobald das Telefon lautlos gestellt ist — genau dann, wenn es am wichtigsten wäre. Ein bestehendes Tool ("BBMTweaks") behebt das nur durch Vibration, nie durch Ton, und reagiert nicht auf einzelne Personen oder den genauen Telefon-Modus.
Eine NotificationListenerService-App (keine Root-Rechte, kein
Xposed/Hooking-Framework nötig) beobachtet Benachrichtigungen von
com.bbm.enterprise. Erkennt sie eine Prioritäts-Nachricht (Kanal-ID enthält
"priority"), löst sie ein Ton-Muster aus:
- N Töne im Abstand X ms, dann eine längere Pause, das Ganze M mal wiederholt — alles frei einstellbar.
- Lautstärke frei wählbar, optional über die Wiederholungen hinweg bis zu einem Maximum ansteigend.
- Getrennt einstellbar je Telefon-Modus (Normal/Vibration/Lautlos) — z. B. nur bei Lautlos aktiv, bei Vibration nichts zusätzliches.
- Optional pro Kontakt ein eigenes Muster, das die Standard-Einstellung für genau diese Person ersetzt (setzt Kontakte-Zugriff voraus — funktioniert, weil BBM-Kontakte im normalen Adressbuch des Telefons landen).
Der eigentliche Ton wird nicht mitgeliefert: die App liest zur Laufzeit
aus, welchen Ton der Prioritäts-Benachrichtigungskanal von BBM Enterprise
selbst hinterlegt hat (NotificationChannel.getSound()), und spielt genau
diese — bereits auf dem Gerät vorhandene — Datei ab. Alternativ lässt sich
in den Einstellungen eine eigene Sounddatei auswählen. So wird keine
Ton-Datei des ursprünglichen Entwicklers kopiert oder weiterverteilt.
Damit ein Ton auch bei lautlos zu hören ist, läuft die Wiedergabe über den
Wecker-Lautstärke-Stream (AudioAttributes.USAGE_ALARM) — dieselbe,
öffentlich dokumentierte Technik, über die auch Wecker-Apps bei lautlosem
Telefon noch klingeln. Keine Umgehung von Systemschutz, keine besonderen
Berechtigungen dafür nötig.
Ein aufklappbarer Berechtigungen-Abschnitt in den Einstellungen zeigt je Berechtigung (Benachrichtigungszugriff, Kontakte) Status und wofür sie gebraucht wird und führt in die passende Systemeinstellung. Fehlt eine einmal erteilte Berechtigung wieder (z. B. nach einem System-Update), erinnert die App per Benachrichtigung mit der Möglichkeit, sie neu zu erteilen oder zu ignorieren.
![]() Hauptbildschirm |
![]() Muster-Editor |
![]() Berechtigungen |
![]() Über / Sicherung |
Kein Gradle — dieselbe rohe Android-SDK-Kommandozeilen-Toolchain wie EdgeTab und Sucher. Ein eigener, unabhängiger Signierschlüssel wird empfohlen (nicht denselben wie die beiden anderen Apps verwenden, da inhaltlich und rechtlich unabhängig).
Gemeinsame Klassen (Benachrichtigungs-Kern u. a.) liegen im Git-Submodul
common/ — vor dem
Bauen einmal git submodule update --init ausführen; der Build kompiliert
common/src mit.
SDK=/path/to/android/sdk
BT="$SDK/build-tools/34.0.0"
AJAR="$SDK/platforms/android-34/android.jar"
KEYSTORE=/path/to/keystore.p12
rm -rf build && mkdir -p build/gen build/obj
"$BT/aapt2" compile --dir res -o build/res.zip
"$BT/aapt2" link -o build/base.apk -I "$AJAR" --manifest AndroidManifest.xml \
--java build/gen -R build/res.zip --auto-add-overlay \
--min-sdk-version 29 --target-sdk-version 34
# common/src mitkompilieren (2>/dev/null: fehlendes Submodul stoert nicht)
javac --release 11 -d build/obj -classpath "$AJAR" $(find src build/gen common/src -name '*.java' 2>/dev/null)
"$BT/d8" --min-api 29 --lib "$AJAR" --output build/ $(find build/obj -name '*.class')
cp build/base.apk build/unsigned.apk && (cd build && zip -qj unsigned.apk classes.dex)
"$BT/zipalign" -f -p 4 build/unsigned.apk build/aligned.apk
"$BT/apksigner" sign --ks "$KEYSTORE" --ks-type PKCS12 \
--out build/BBMePing.apk build/aligned.apk- Setzt eine installierte, laufende BBM-Enterprise-App voraus, deren
Prioritäts-Kanal weiterhin
"priority"im Namen trägt (durch Dekompilieren der aktuellen Version bestätigt, kann sich mit einem künftigen BBM-Update ändern). - Personenbezogene Zuordnung läuft über einen exakten Namensabgleich mit dem Adressbuch (Anzeigename der Benachrichtigung = Anzeigename des Kontakts) - kein Fuzzy-Matching, um nie die falsche Person zu treffen.
- Deutsch: Anleitung · Werbung
- English: User guide · Flyer
GNU General Public License v3.0 (oder später) — siehe LICENSE.



