Android Permissions

You can check here about what are the permissions needed for calls. Open the file app/src/main/AndroidManifest.xml, and add the following code in outside the <application> tag.

Add device permissions for access the application#

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Add runtime permissions for calls#

For audio calls, we need below permissions:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

You can use the below method to check audio call permissions:

CallManager.isAudioCallPermissionsGranted();

For video call, we need below permissions:

Manifest.permission.RECORD_AUDIO
Manifest.permission.CAMERA
Manifest.permission.READ_PHONE_STATE

You can use the below method to check video call permissions:

CallManager.isVideoCallPermissionsGranted();

From Android 12, ensure that android.permission.BLUETOOTH_CONNECT and android.permission.READ_PHONE_STATE runtime permissions are granted for your app for seameless audio routing and gsm call handling. If the android.permission.BLUETOOTH_CONNECTpermission is not granted, call audio will not be routed to BT Headset even though it is connected. If the android.permission.READ_PHONE_STATE permission is not granted, gsm call related functionalities will not work in sdk.

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

From Android 13, CallSDK need below permission to show ongoing call notification.

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

You can use the below method to check call notification permission:

CallManager.isNotificationPermissionsGranted();

Starting from Android 14, the CallSDK requires the following permission to display full-screen notifications for incoming and ongoing calls while the device is locked.

<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />

You can use the following method to check if the call notification full-screen intent permission is enabled or not.

CallManager.canUseFullScreenIntent();