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.
- 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.
- 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
)
- Definieren Sie
requestPermissionLauncherin IhremMainActivity.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()
}
}
- 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)
}
}
- 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
}
}
- Vollständig
MainActivity.ktdurch 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
}
}
- 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.
Grundlegendes Video-Rendering
Erfahren Sie, wie Sie einen benutzerdefinierten Videorenderer in Kotlin verwenden, um eine Schwarz-Weiß-Version eines Videostreams mit dem Vonage Video Android SDK anzuzeigen.