Issue with releasing app targeting Android 14 due to Foreground Service permissions in Zoom Video SDK

Zoom SDK Version: 1.12.0

Artifacts used:

  • us.zoom.videosdk:zoomvideosdk-core
  • us.zoom.videosdk:zoomvideosdk-videoeffects

Note that this topic is highly related to App update rejected due to Foreground service permissions, but it is relevant for the Video SDK, not the Meeting SDK.

Releasing the app targeting SDK 34 (Android 14) fails with Error 403: You must let us know whether your app uses any Foreground Service. The error is caused by Zoom declaring the following permissions in the manifest:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL"/>

Google requires developers to fill out Foreground service permissions if Foreground services are used in the app. Each permission needs to have a rationale and a video showcasing its usage (!).

I’ve seen the answer which mentions why these permissions are needed:

FOREGROUND_SERVICE_MICROPHONE: Allows the capability to receive audio when the app is put in the background

FOREGROUND_SERVICE_MEDIA_PLAYBACK: Allows the capability to share audio while screen sharing

FOREGROUND_SERVICE_MEDIA_PROJECTION: Allows the capability to project the screen while screen sharing

FOREGROUND_SERVICE_CONNECTED_DEVICE: Allows the capability to use a Bluetooth device as the audio source

FOREGROUND_SERVICE_PHONE_CALL: Allows the capability to use a Bluetooth device for the meeting call

But this is not sufficient for the Google review process. In the Video SDK documentation, I couldn’t find anything about the detailed usage of these permissions, so I wanted to ask here:

  1. When are these foreground services used and how can we trigger them? Usually, foreground services show a status bar notification to make the user aware that the app is performing a task in the foreground, and I assume this is what Google expects to see in the video.
  2. Is it safe to remove these permissions from the manifest? I assume that if there is no screen-sharing feature in our app, removing MEDIA_PLAYBACK and MEDIA_PROJECTION will be safe, but what about the other ones?

Thank you for your assistance.

Hi @jledwon ,

Thank you for posting on the dev forum.
We’ll suggest starting a foreground notification service when the session starts. Only the FOREGROUND_SERVICE_MEDIA_PROJECTION & FOREGROUND_SERVICE_MEDIA_PLAYBACK which are specifically for screen sharing can be optional. Other permissions based on the description should be necessary when the foreground service starts.
image

Elaine

Hi Elaine,

Many thanks for your help.

I just wanted to clarify a couple of things:

  • Is my understanding correct that the Zoom Video SDK does not launch any foreground services on its own and that we have to manually launch them when a call starts if we need one?
  • If the Video SDK does not launch any foreground services on its own and our app doesn’t need one for now, would it be safe to remove all of the permissions from the manifest to simplify the Play Store review process?

Thanks again for your assistance!