Qt Android und der Sound Management System Dialog

Dabei geht es natürlich nicht darum, dass Sie das Ereignis einer gedrückten Taste in der Anwendung abfangen und nur die Lautstärke einstellen können. Tatsache ist, dass Sie mit der Anwendung arbeiten und Musik hören können, die auf dem Player im Hintergrund läuft. Oder reparieren Sie die Systemdateien einfach einmal - und es wird immer funktionieren. Wenn Sie die Lautstärketasten am Gerät drücken, muss sich die Lautstärke des Systems ändern (dort ist die Lautstärkeregelung herausgesprungen usw.; Sie verstehen mich).

Zum Zeitpunkt des Schreibens befand sich nichts auf russischsprachigen Websites. Ich fand es nur in einem abgelegenen Übersee-Forum, und das war nicht ganz klar, ich musste mich selbst daran erinnern.

Also fangen wir an.

Sie müssen zu dem Daddy gehen, auf dem Qt installiert ist. Hier vorsichtig: nicht das SDK, nicht wo die kompilierten Programme gespeichert sind, nämlich Qt selbst.

Dort gehen wir zu Papa 5.X.X (wobei X die Versionsnummer ist, habe ich 5.2.1). Hier gehen wir zu dem Ordner, in dem der Name des Kollektors angegeben ist, den Sie für Android verwenden (ich habe android_armv7), und gehen dann den folgenden Pfad der Unterordner durch: \ src \ android \ java \ src \ org \ qtproject \ qt5 \ android \ bindings \

Hier sind wir und an Ort und Stelle. Öffnen Sie im Ordner die Datei QtActivity.java zum Bearbeiten .
Nach der Linie:
import java.io.DataInputStream;

Fügen Sie in der 36. Zeile den folgenden Code ein:
import java.lang.Object;

Nach der Linie:
import android.graphics.Canvas;

Fügen Sie in der 62. Zeile den folgenden Code ein:
import android.media.AudioManager;

Als nächstes müssen Sie, wo verschiedene Objekte deklariert sind (ich habe es in Zeile 112 getan), den folgenden Code einfügen:
private AudioManager audio;

Und schließlich finden Sie die onKeyDown- Funktion im Code und fügen Sie den Code am Anfang ein:

switch (keyCode)
 {
    case KeyEvent.KEYCODE_VOLUME_UP:
        audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
        return true;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
        return true;
}

Dies ist meiner Meinung nach das einzige Stück aus einem Artikel im Forum.

Im Allgemeinen sieht die Funktion folgendermaßen aus:

public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        switch (keyCode) 
        {
            case KeyEvent.KEYCODE_VOLUME_UP:
                audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
                return true;
			case KeyEvent.KEYCODE_VOLUME_DOWN:
                audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
                return true;
        }
        if (QtApplication.m_delegateObject != null && QtApplication.onKeyDown != null)
            return (Boolean) QtApplication.invokeDelegateMethod(QtApplication.onKeyDown, keyCode, event);
        else
            return super.onKeyDown(keyCode, event);
    }

Nun, das ist alles. Erstellen Sie nun Ihre Projekte für Android neu und freuen Sie sich beim Anpassen über die Anzeige des Dialogs der Lautstärke.

Nur für den Fall, ich gebe einen Link zu dem Forum, in dem es gefunden wurde. Alles funktioniert, überprüft.

Jetzt auch beliebt: