Solicitud de permisos
Dado que nuestra aplicación utiliza el audio y el vídeo del dispositivo del usuario, tendremos que añadir algo de código para solicitar los permisos de audio y vídeo. Utilizaremos el EasyPermissions biblioteca para hacer esto.
- Empiece por añadir la biblioteca EasyPermissions a su proyecto: abra el archivo build.gradle en tu módulo (el archivo app/build.gradle) y añade el siguiente fragmento de código a la sección de dependencias:
implementation 'pub.devrel:easypermissions:3.0.0'
- En su AndroidManifest.xml añada este fragmento de código dentro del archivo
manifesttags:
<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" />
ℹ️ Nota: En WAKE_LOCK se utiliza para evitar que el dispositivo entre en reposo durante una videollamada. Esto garantiza la transmisión ininterrumpida de contenido multimedia.
- En su MainActivity.java archivo, añade un nuevo método llamado
onRequestPermissionsResult:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
Este es un código de ejemplo para utilizar la biblioteca EasyPermissions.
Importante: Tendrás que añadir las importaciones manualmente, haciendo clic en EasyPermissions (texto en rojo) y pulsando la combinación de teclas Opción + Intro en MacOS o Alt + Intro en Windows. Este paso puede ser necesario al pegar el código. También puede activar la opción "Añadir importaciones inequívocas sobre la marcha" (Preferencias | Editor | Importación automática) para añadir importaciones automáticamente.
- Añade el
PERMISSIONS_REQUEST_CODEen la parte superior de MainActivity.java archivo:
private static final int PERMISSIONS_REQUEST_CODE = 124;
- A continuación añadiremos un
requestPermissions()método:
@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);
}
}
Esto comprueba si ya se han concedido los permisos. Si no es así, solicitamos al usuario los permisos de cámara y micrófono mediante el EasyPermissions.requestPermissions método.
Una vez concedidos los permisos, este método se ejecutará de nuevo debido a la @AfterPermissionGranted(PERMISSIONS_REQUEST_CODE) anotación. Añadiremos algo de código para inicializar los objetos sesión y vista en los próximos pasos.
- Ahora añade
requestPermission();para llamar al método dentro delonCreate()método:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermissions();
}
Videochat básico
Aprende los conceptos básicos de la plataforma Vonage Video API, incluyendo cómo los usuarios pueden comunicarse a través de vídeo, voz y mensajería. Explora un flujo básico de la Video API de Vonage.