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.
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).
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"/>
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