Kotlin

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.

  1. Berechtigungen hinzufügen zu AndroidManifest.xml

Im Inneren Ihres AndroidManifest.xmlfügen Sie Folgendes hinzu innerhalb der <manifest> Tag:

ℹ️ 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. Beantragen Sie Laufzeitberechtigungen in Ihrem MainActivity.kt

Wir aktualisieren jetzt Ihre MainActivity um Berechtigungen zur Laufzeit anzufordern. Am Anfang Ihrer MainActivity.ktdefinieren Sie die Berechtigungen, die Ihre Anwendung benötigt, und eine Anfragecode-Konstante:

private val REQUIRED_PERMISSIONS = arrayOf(
    Manifest.permission.CAMERA,
    Manifest.permission.RECORD_AUDIO
)
  1. Definieren Sie requestPermissionLauncher in Ihrem MainActivity.kt. Sie wird die Antwort auf die Erlaubnis für uns bearbeiten.
private val requestPermissionLauncher = registerForActivityResult(
    ActivityResultContracts.RequestMultiplePermissions()
) { permissions ->
    val allGranted = permissions.values.all { it }
    if (allGranted) {
        // All permissions granted
        initializeSession()
    } else {
        // Permissions denied
        Toast.makeText(
            this,
            "Camera and microphone permissions are required to make video calls.",
            Toast.LENGTH_LONG
        ).show()
    }
}
  1. Prüfen Sie die Berechtigungen in onCreate()

In Ihrem onCreate() überprüfen Sie, ob alle erforderlichen Berechtigungen erteilt wurden. Ist dies der Fall, fahren Sie mit der Initialisierung der Videositzung fort. Andernfalls fordern Sie die Berechtigungen an.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    requestPermissions()
}

private fun requestPermissions() {
    if (hasPermissions()) {
        // Permissions are granted — proceed
        initializeSession()
    } else {
        // Request permissions using the modern approach
        requestPermissionLauncher.launch(REQUIRED_PERMISSIONS)
    }
}
  1. Implementieren Sie die Hilfsmethode hasPermissions()

Fügen Sie diese Hilfsmethode hinzu, um zu prüfen, ob alle erforderlichen Berechtigungen bereits erteilt wurden:

private fun hasPermissions(): Boolean {
    return REQUIRED_PERMISSIONS.all {
        ContextCompat.checkSelfPermission(this, it) == PackageManager.PERMISSION_GRANTED
    }
}
  1. Vollständig MainActivity.kt durch Erstellen eines Sitzungsplatzhalters

Definieren Sie die initializeSession() Methode als Platzhalter für die Einrichtung Ihres Videoanrufs. Nachfolgend finden Sie die vollständige MainActivity.kt mit allem, was bisher geschah:

class MainActivity : ComponentActivity() {

    private val REQUIRED_PERMISSIONS = arrayOf(
        Manifest.permission.CAMERA,
        Manifest.permission.RECORD_AUDIO
    )

    private val requestPermissionLauncher = registerForActivityResult(
        ActivityResultContracts.RequestMultiplePermissions()
    ) { permissions ->
        val allGranted = permissions.values.all { it }
        if (allGranted) {
            // All permissions granted
            initializeSession()
        } else {
            // Permissions denied
            Toast.makeText(
                this,
                "Camera and microphone permissions are required to make video calls.",
                Toast.LENGTH_LONG
            ).show()
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        requestPermissions()
    }

    private fun requestPermissions() {
        if (hasPermissions()) {
            // Permissions are granted — proceed
            initializeSession()
        } else {
            // Request permissions using the modern approach
            requestPermissionLauncher.launch(REQUIRED_PERMISSIONS)
        }
    }

    // Helper function to check permissions
    private fun hasPermissions(): Boolean {
        return REQUIRED_PERMISSIONS.all {
            ContextCompat.checkSelfPermission(this, it) == PackageManager.PERMISSION_GRANTED
        }
    }

    private fun initializeSession() {
        // TODO: Connect to Vonage session or set up video UI
    }
}
  1. Nächste Schritte

Sobald die Berechtigungen erteilt sind, wird die Funktion initializeSession() ausgelöst. In den nächsten Schritten des Tutorials werden Sie die Logik für die Verbindung mit einer Vonage Video API-Sitzung implementieren.