Java

Beantragung von Genehmigungen

Da unsere App Audio- und Videodaten vom Gerät des Benutzers verwendet, müssen wir etwas Code hinzufügen, um Audio- und Videoberechtigungen anzufordern. Wir verwenden die EasyPermissions Bibliothek, um dies zu tun.

  1. Beginnen Sie damit, die EasyPermissions-Bibliothek zu Ihrem Projekt hinzuzufügen - öffnen Sie die build.gradle für Ihr Modul (die Datei app/build.gradle) und fügen Sie den folgenden Codeschnipsel in den Abschnitt dependencies ein:
implementation 'pub.devrel:easypermissions:3.0.0'
  1. In Ihrem AndroidManifest.xml Datei, fügen Sie diesen Codeschnipsel innerhalb der manifest Tags:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

ℹ️ Anmerkung: Die WAKE_LOCK wird verwendet, damit das Gerät während eines Videoanrufs nicht schläft. Dies gewährleistet eine ununterbrochene Medienübertragung.

  1. In Ihrem MainActivity.java fügen Sie eine neue Methode namens onRequestPermissionsResult:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}

Dies ist ein Standardcode zur Verwendung der EasyPermissions-Bibliothek.

Das ist wichtig: Sie müssen die Importe manuell hinzufügen, indem Sie auf EasyPermissions (roter Text) und drücken Sie die Tastenkombination Option + Enter unter MacOS oder Alt + Enter unter Windows. Dieser Schritt kann beim Einfügen des Codes erforderlich sein. Sie können auch die Option "Eindeutige Importe spontan hinzufügen" aktivieren (Einstellungen | Editor | Automatischer Import), um Importe automatisch hinzuzufügen.

  1. Fügen Sie die PERMISSIONS_REQUEST_CODE Eigenschaft am Anfang der MainActivity.java Datei:
private static final int PERMISSIONS_REQUEST_CODE = 124;
  1. Als nächstes fügen wir eine requestPermissions() Methode:
@AfterPermissionGranted(PERMISSIONS_REQUEST_CODE)
private void requestPermissions() {
    String[] perms = { Manifest.permission.INTERNET, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO };
    if (EasyPermissions.hasPermissions(this, perms)) {
        // initialize and connect to the session

    } else {
        EasyPermissions.requestPermissions(this, "This app needs access to your camera and mic to make video calls", PERMISSIONS_REQUEST_CODE, perms);
    }
}

Dabei wird geprüft, ob die Berechtigungen bereits erteilt wurden. Ist dies nicht der Fall, wird der Benutzer aufgefordert, die Berechtigungen für Kamera und Mikrofon mit dem Befehl EasyPermissions.requestPermissions Methode.

Sobald die Berechtigungen erteilt wurden, wird diese Methode aufgrund der @AfterPermissionGranted(PERMISSIONS_REQUEST_CODE) Annotation. In den nächsten Schritten werden wir etwas Code zur Initialisierung der Sitzungs- und Ansichtsobjekte hinzufügen.

  1. Jetzt hinzufügen requestPermission(); um die Methode innerhalb der onCreate() Methode:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        requestPermissions();
    }