Xamarin
Xamarin is deprecated and no longer supported. The packages and examples on this page describe legacy Xamarin integrations and do not represent a supported binding for the current Help Lightning Android SDK 4.x. Contact Help Lightning before planning Xamarin or .NET MAUI Android work.
This page is retained for applications that already embed legacy Help Lightning calls through Xamarin on iOS or Android. It is not current Android installation guidance.
Before using a legacy SDK, you need a Help Lightning API key, which requires a Help Lightning site with an Enterprise Tier.
The following downloads are retained for existing integrations only:
- iOS: HelpLightning.SDK 17.0.1
- iOS screen-sharing extension: HelpLightning.SDK.iOS.Binding.ScreenSharing 17.0.1
- Android Zebra add-on only: HelpLightning.SDK.Android.Binding.Zebra 2.7.1
These links do not provide or imply a supported Android SDK 4.x Xamarin or .NET MAUI binding.
The legacy SDK is distributed as NuGet packages. Existing applications can set up a local repository and configure their environment to use the applicable package.
The following C# example is retained for the legacy Xamarin API. Do not copy these API names into a new Android SDK 4.x binding without validating the generated C# surface.
using HelpLightning.SDK;
public partial class CallController : UIViewController, ICallClientDelegate
{
public override void ViewDidLoad()
{
// Set this instance as the default delegate.
CallClientFactory.Instance.CallClient.Delegate = this;
}
public void OnCallEnded(Call call, string reason)
{
Console.WriteLine("The call has ended: {0}", reason);
}
public void OnScreenCaptureCreated(Call call, object image)
{
// Store or upload the captured image.
}
public object isShareKnowledgeEnabled(Call call)
{
return false;
}
public object IsQuickKnowledgeOverlaySupported(Call call)
{
return false;
}
}
Create a legacy Call with the tokens and server URL returned by your
integration server, and then start it:
Call call = new Call(sessionId, sessionToken, userToken,
url, apiKey, displayName, avatarUrl);
// The second parameter is the UIViewController that hosts the call.
Task<IDictionary<string, object>> task =
CallClientFactory.Instance.CallClient.StartCall(call, this);
task.ContinueWith(t => {
if (t.IsCompletedSuccessfully)
{
Console.WriteLine("The call has started: " +
t.Result[Call.HLCallInfoCallKey]);
}
else
{
Console.Error.WriteLine("Cannot start the call: " + t.Exception);
}
});
The following generated-binding syntax was documented for the legacy Xamarin Android 16.4-and-later line. It has not been validated as Android SDK 4.x or .NET MAUI syntax.
namespace HelpLightning.SDK.Sample.Android
{
[Application]
public class SampleApplication : Application
{
public override void OnCreate()
{
base.OnCreate();
HLClient.Instance.Init(ApplicationContext);
}
}
}
A normal native Android Gradle application resolves transitive dependencies from the SDK’s published POM. That installation path does not apply to a Xamarin/.NET MAUI binding or an application that manually packages AAR files. Help Lightning does not currently document a supported 4.x Xamarin/.NET MAUI Android package.
A customer maintaining its own binding must regenerate it against the complete released POM and validate the generated C# API. The 4.x dependency transition includes all of the following:
- Remove the OpenTok Android dependency
com.opentok.android:opentok-android-sdk:2.29.2. - Remove
com.vipaar.lime:libtinysplinej:1.0.1. - Bind Zoom Video SDK core
us.zoom.videosdk:zoomvideosdk-core:2.5.0. - Bind
io.github.afreakyelf:Pdf-Viewer:2.3.7. - Use companion artifacts from the same Help Lightning SDK release for
ballyhoo,camera,libyuv,zebracamera,core-di, andcore-android-util. - Raise the Android minimum to API 28.
The Zoom 2.5.0 AAR contains native libraries for arm64-v8a and
armeabi-v7a. A manually produced package must preserve those libraries. The
artifact does not support x86 or x86_64 Android emulators, so validation must
use a physical ARM device or an ARM emulator. Do not assume a legacy NuGet
package handles these requirements.
The regenerated binding must also validate and document:
- A custom service derived from
InCallService, including whether generated bindings require overrides for Java default methods such as Report a Bug. HLClient.selectQuickKnowledgeOverlay(Uri)as the binding-safe quick-overlay entry point.- Opt-in embedded chat and embedded participant-invite callbacks.
- Host-owned unread badge updates, including sending
0when messages are read. EmbeddedContentDescriptorconstruction from C#, including its Fragment class and Bundle arguments.
Consumers must implement the generated equivalent of HLClientDelegate
through InCallService; HLCallDelegate is an internal SDK bridge and is not a
public host contract.
These repositories contain historical Xamarin examples. They are not evidence of Android SDK 4.x or .NET MAUI compatibility:
The Xamarin iOS screen-sharing tutorial is retained for the legacy iOS integration.