Solicitação de permissões
Como nosso aplicativo utiliza áudio e vídeo do dispositivo do usuário, precisaremos adicionar um código para solicitar permissões de áudio e vídeo. Vamos usar o EasyPermissions biblioteca para fazer isso.
- Comece adicionando a biblioteca EasyPermissions ao seu projeto — abra o build.gradle no seu módulo (o arquivo app/build.gradle) e adicione o seguinte trecho de código à seção de dependências:
implementation 'pub.devrel:easypermissions:3.0.0'
- No seu AndroidManifest.xml arquivo, adicione este trecho de código dentro do
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" />
ℹ️ Observação: O WAKE_LOCK Essa permissão é usada para impedir que o dispositivo entre no modo de suspensão durante uma videochamada. Isso garante a transmissão ininterrupta de mídia.
- No seu MainActivity.java arquivo, adicione um novo método chamado
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 é um código padrão para utilizar a biblioteca EasyPermissions.
Importante: Você terá que adicionar as importações manualmente, clicando em EasyPermissions (texto em vermelho) e pressionando a combinação de teclas Option + Enter no macOS ou Alt + Enter no Windows. Essa etapa pode ser necessária ao colar o código. Você também pode ativar a opção “Adicionar importações inequívocas dinamicamente” (Preferências | Editor | Importação automática) para adicionar importações automaticamente.
- Adicione o
PERMISSIONS_REQUEST_CODEpropriedade no topo do MainActivity.java arquivo:
private static final int PERMISSIONS_REQUEST_CODE = 124;
- A seguir, vamos adicionar um
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);
}
}
Isso verifica se as permissões já foram concedidas. Caso contrário, solicitamos ao usuário as permissões de acesso à câmera e ao microfone por meio do EasyPermissions.requestPermissions método.
Assim que as permissões forem concedidas, esse método será acionado novamente devido ao @AfterPermissionGranted(PERMISSIONS_REQUEST_CODE) anotação. Adicionaremos um código para inicializar os objetos de sessão e de visualização nas próximas etapas.
- Agora adicione
requestPermission();para chamar o método dentro doonCreate()método:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermissions();
}
Bate-papo por vídeo básico
Aprenda os conceitos básicos da plataforma Vonage Video API, incluindo como os usuários podem se comunicar por vídeo, voz e mensagens. Explore um fluxo básico da Vonage Video API.