Android SDK permission requirements

The following permission requirements apply when working with the Vivox Android SDK:

  • Required

    • android.permission.INTERNET - Allows communication with Vivox servers

    • android.permission.RECORD_AUDIO - Allows microphone access

      For more information, see the Android developer documentation on requesting app permissions.

  • Recommended

    Note: Not giving these permissions might prevent some Vivox SDK features from working properly.

    • android.permission.MODIFY_AUDIO_SETTINGS

    • android.permission.ACCESS_NETWORK_STATE - Allows access to network information

    • android.permission.ACCESS_WIFI_STATE - Allows access to Wi-Fi information

    • android.permission.BLUETOOTH - Allows access to Bluetooth devices on Android versions earlier than 12

    • android.permission.BLUETOOTH_CONNECT - Allows access to Bluetooth devices on Android version 12 and later

      Note: On Android 12 (Android SDK version 31) and later, you need to request the android.permission.BLUETOOTH_CONNECT permission at runtime. For more information, see the Android developer documentation on Bluetooth permissions.

These permissions will be given by default to your app after it is compiled with the Vivox SDK.

To remove optional permissions that you do not want in your application, you need to have a custom AndroidManifest.xml file for your application. To create this file, complete the following steps:

  1. Open your project in the Unity Editor.

  2. Select Edit > Project Settings.

  3. On the Player tab, open the Android section.

  4. In the Publishing Settings section, enable the Build > Custom Main Manifest checkbox.

    The file will generate in your assets, and its path will display after the checkbox.

When you have a custom AndroidManifest.xml file, you can add the permission tag to it and specify tools:node”remove” to ensure that, for example, android.permission.BLUETOOTH_CONNECT is not included:

<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />