Using Zoom's Android SDK with Unity android build

Description
So after a lot of trial and error (mainly hunting down dependencies one at a time), I was able to successfully build an APK through Unity that includes the Zoom SDK (commonlib.aar and mobilertc.aar). Inside Unity, I’ve even able to create a ZoomSDK class instance using:

AndroidJavaClass zoomSDKClass = new AndroidJavaClass("us.zoom.sdk.ZoomSDK");

Now that I’ve gotten this far, though, I’m hitting a wall. I’m not sure how to further interact with the SDK or what it’s even realistic or possible to do with it inside a Unity android app. I was hoping to be able to have a user be able to log in, join a call, and share my app’s screen all within my Unity app, but maybe that’s not going to be easy. I was wondering if anyone else had attempted to create a Unity Android app using Zoom’s Android SDK.

Trying to run functions I see used in the example apps results in “method not found” errors, for example if I try to run this:

zoomSDKClass.CallStatic("getInstance");

Basically, I was hoping for any guidance or to be nudged in the right direction.

Which Mobile Meeting SDK version?
Android 5.7.6.1915

Edit:

So I actually have gotten the Zoom SDK to initialize now. My example above failed because I didn’t include the return type, so this works:

var zoomSDK = zoomSDKClass.CallStatic<AndroidJavaObject>("getInstance");

Hi @beakhole, thanks for using our SDK.

I’m glad to see you were able to figure out the error with calling getInstance!

I have seen other developers find success using our SDK in a Unity environment, although there may be some difficult hurdles to overcome depending on your use case. Since the SDK is built for use in a standard Android environment, there are times where engines such as Unity and Unreal run into compatibility issues at runtime. These problems largely stem from usage of Android Views/Activities/etc. within the SDK. You can prevent the Meeting SDK from creating its own UI through custom UI mode. The problem with custom UI mode is that you would still need to use MobileRTCVideoView to render user video in meetings. The only way around this would be to use raw video data, which requires a license that is not currently available.

Fortunately, we now have the Video SDK, which comes with raw data access out of the box. This would allow you to directly access the video stream of each user so that you can render it in any environment. If you have any questions about using the Video SDK after checking out our documentation, we’ll be more than happy to help over in #mobile-video-sdk. :slightly_smiling_face:

Thanks!

Hey, thanks a lot for this information. This is really helpful as far as my understanding of what can be done goes. It’s been fun experimenting in Unity now that a few things are starting to work, and it’s good to know that the Video SDK is available should that be the only way to achieve our needs.

You are welcome, glad I could help clarify! :slightly_smiling_face: