[JAVA] [Android] So aktivieren / deaktivieren Sie das Benachrichtigungsfeld mit StatusBarManager

Verwendung der privaten (formalisierten API-Ebene 29?) API mit dem Namen StatusBarManager in der Android-App, dem Benachrichtigungsfeld (Push-Benachrichtigungsliste) Ich werde erklären, wie man das Display ein- und ausschaltet.

StatusBarManager-Quellcode

Den Quellcode für StatusBarManager finden Sie hier (https://android.googlesource.com/platform/frameworks/base/+/android-4.3_r2.1/core/java/android/app/StatusBarManager.java).

Erforderliche Berechtigungen

Sie müssen Folgendes zu AndroidManifest.xml hinzufügen. Es ist keine Laufzeitberechtigung, fügen Sie sie einfach zu AndroidManifest.xml hinzu.

AndroidManifest.xml


<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>

Quellcode

Es ist eine Privatklasse, also probieren Sie es aus, damit alles passieren kann. Rufen Sie zum Öffnen des Panels android.app.StatusBarManager.expandNotificationsPanel auf.

Probe zum Öffnen des Panels


if(ContextCompat.checkSelfPermission(this, Manifest.permission.EXPAND_STATUS_BAR) != PackageManager.PERMISSION_GRANTED)
    return;

try {
    Object service = getSystemService("statusbar");
    Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
    Method expand = statusBarManager.getMethod("expandNotificationsPanel");
    expand.invoke(service);
}
catch (Exception e){
    e.printStackTrace();
}

Im Gegensatz dazu wird beim Schließen des Bedienfelds gleichzeitig der Bildschirm für die Schnelleinstellung geschlossen, aber android.app.StatusBarManager.collapsePanels wird aufgerufen.

Probe zum Schließen des Panels


if(ContextCompat.checkSelfPermission(this, Manifest.permission.EXPAND_STATUS_BAR) != PackageManager.PERMISSION_GRANTED)
    return;

try {
    Object service = getSystemService("statusbar");
    Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
    Method expand = statusBarManager.getMethod("collapsePanels");
    expand.invoke(service);
}
catch (Exception e){
    e.printStackTrace();
}

Recommended Posts

[Android] So aktivieren / deaktivieren Sie das Benachrichtigungsfeld mit StatusBarManager
So deaktivieren Sie die ChromeDriver-Benachrichtigungsleiste (Java)
So verwenden Sie OpenCV 4 unter Android und zeigen die Kamera live an
So installieren Sie JDK 8 unter Windows ohne Verwendung des Installationsprogramms
So führen Sie React und Rails auf demselben Server aus
Wie man eine Ansicht auf Android "aushöhlt"
So installieren und konfigurieren Sie das Überwachungstool "Graphite" unter Ubuntu
Versuchen Sie, den Dienst auf Android Oreo zu verwenden
So erkennen Sie Mikrofonkonflikte unter Android
Wie man die Zehner und Einsen findet
So platzieren Sie Geckodriver (Seleniums WebDriver) mit dem Befehl Maven auf dem Pfad
So lösen Sie das Problem, dass unter iOS14 keine Benachrichtigung angefordert werden kann
[Android] Übergeben von Bildern und Empfangen von Rückrufen beim Teilen mit ShareCompat
So schränken Sie das Bildformat in der Galerie unter Android ein und wählen und importieren Sie dann mehrere Bilder
[Ruby on Rails] So melden Sie sich nur mit Ihrem Namen und Passwort mit dem Gem-Gerät an
So geben Sie Excel und PDF mit Excella aus
Ausführen einer Methode und Verspotten mit JUnit
Wie man Stimme oder Musik mit Javascript spielt
So implementieren Sie die Brotkrumenfunktion mit gretel
Wenn Sie Android Room verwenden und die Spaltendefinition ändern möchten
So ermitteln Sie den Abstand und den Winkel zwischen zwei Punkten in einer Ebene
So finden Sie die Gesamtpunktzahl und die Durchschnittspunktzahl
[Java] Memo zum Schreiben der Quelle
Freigeben auf der Hostseite (Windows) und der Gastseite (CentOS 7) mit VirtualBox
[Docker] Wie man mit einem Container in Heroku aktualisiert und wie man mit Migrate Error umgeht
[Swift5] Wie man die zweiten oder dritten Minderheitspunkte rundet, rundet oder aufrundet
[Ruby on Rails] So ändern Sie den Spaltennamen
[Android] Zeigen Sie Bilder und Zeichen auf der Registerkarte ViewPager an
[Android Studio] [Java] So fixieren Sie den Bildschirm vertikal
[Android] So erhalten Sie die Einstellungssprache des Terminals
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Installieren Sie MySQL 5.6 unter CentOS6 [So geben Sie die Version an]
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle
Ich möchte die Protokollausgabe unter Android vereinfachen
So machen Sie einen Screenshot mit dem Android Studio-Emulator
Testen des Einschlusses von Bildern bei Verwendung von ActiveStorage und Faker
So implementieren Sie den In-App-Kauf einfach über den Itemstore <Implementierung: Android>
Unterschied zwischen Java und JavaScript (wie man den Durchschnitt findet)
Android App, die Bilder aus der Galerie auswählt und anzeigt
Festlegen und Beschreiben von Umgebungsvariablen mit Rails zsh
So deaktivieren Sie Set-Cookie über die API auf der Vorderseite
[Version 2020] So senden Sie eine E-Mail mit Android Studio Javamail
So erstellen Sie eine App mit Tensorflow mit Android Studio
So verbinden Sie eine Tabelle ohne DBFlute und SQL
So wechseln Sie Java in der OpenJDK-Ära auf dem Mac
So überprüfen Sie die Erweiterung und Größe der hochgeladenen Dateien
Erste Schritte mit JDBC mit PostgresSQL unter MacOS
So spielen Sie eine MIDI-Datei mit der Java Sound API ab
Komprimieren Sie mehrere Dateien und laden Sie sie auf Android in Firebase Storage hoch.