Azure Communication UI Mobile Library for Android
Перейти к файлу
Inderpal Singh Aulakh d1d71cb262 [Calling][Bug] video not visible to remote participants on join (#508) 2022-11-10 16:15:18 -08:00
.github [Feature] multiple event handlers (#343) 2022-06-15 15:43:54 -07:00
azure-communication-ui [Calling][Bug] video not visible to remote participants on join (#508) 2022-11-10 16:15:18 -08:00
docs Update ChangeLog (#466) 2022-11-10 16:15:18 -08:00
.gitignore [Release] 1.0.0-beta.1 (#1) (#2) 2021-12-10 14:53:22 -08:00
CHANGELOG.md [Feature] Make Title a require field on the CallCompositeNavigationBarViewData (#407) 2022-11-10 16:15:18 -08:00
CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md committed 2021-11-18 12:24:09 -08:00
LICENSE LICENSE committed 2021-11-18 12:24:10 -08:00
LICENSE.md [Release] 1.0.0-beta.1 (#1) (#2) 2021-12-10 14:53:22 -08:00
README.md Github readme version declaration (#467) 2022-11-10 16:15:18 -08:00
SECURITY.md SECURITY.md committed 2021-11-18 12:24:11 -08:00
SUPPORT.md [Refactor] azure review feedback changes (#331) 2022-06-09 18:08:03 -07:00

README.md

Hero Image

Azure Communication UI Mobile Library for Android

Azure Communication UI Mobile Library is an Azure Communication Services capability focused on providing UI components for common business-to-consumer and business-to-business calling interactions.

Getting Started

Get started with Azure Communication Services by using the UI Library to integrate communication experiences into your applications. For detailed instructions to quickly integrate the UI Library functionalities visit the Quick-start Documentation.

Prerequisites

Install the packages

In your app level (app folder) build.gradle, add the following lines to the dependencies and android sections.

android {
    ...
    packagingOptions {
        pickFirst  'META-INF/*'
    }
    ...
}
dependencies {
    ...
    implementation 'com.azure.android:azure-communication-ui-calling:<latest stable release version>'
    ...
}

Please make sure to pick latest stable release version from our Github Releases

In your project gradle scripts add following lines to repositories. For Android Studio (2020.*) the repositories are in settings.gradle dependencyResolutionManagement(Gradle version 6.8 or greater). If you are using old versions of Android Studio (4.*) then the repositories will be in project level build.gradle allprojects{}.

repositories {
    ...
    mavenCentral()
    maven {
        url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
    }
    ...
}

Sync project with gradle files. (Android Studio -> File -> Sync Project With Gradle Files)

Quick Sample

Create CallComposite and launch it. Replace <GROUP_CALL_ID> with your group ID for your call, <DISPLAY_NAME> with your name, and <USER_ACCESS_TOKEN> with your token. For full instructions check out our quickstart or get the completed sample.

Kotlin

val communicationTokenRefreshOptions = CommunicationTokenRefreshOptions({ "<USER_ACCESS_TOKEN>" }, true)
val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)

val locator: CallCompositeJoinLocator = CallCompositeGroupCallLocator(UUID.fromString("<GROUP_CALL_ID>"))
val remoteOptions = CallCompositeRemoteOptions(locator, communicationTokenCredential, "<DISPLAY_NAME>")
        
val callComposite: CallComposite = CallCompositeBuilder().build()
callComposite.launch(context, remoteOptions)

Java

CommunicationTokenRefreshOptions communicationTokenRefreshOptions =
        new CommunicationTokenRefreshOptions(() -> "<USER_ACCESS_TOKEN>", true);

CommunicationTokenCredential communicationTokenCredential = 
        new CommunicationTokenCredential(communicationTokenRefreshOptions);

final CallCompositeJoinLocator locator =  new CallCompositeGroupCallLocator(UUID.fromString("<GROUP_CALL_ID>"));
final CallCompositeRemoteOptions remoteOptions =
                new CallCompositeRemoteOptions(locator, communicationTokenCredential, "<DISPLAY_NAME>");

CallComposite callComposite = new CallCompositeBuilder().build();
callComposite.launch(context, remoteOptions);

For more details on Mobile UI Library functionalities visit the API Reference Documentation.

Accessibility

Previous Android API devices could perform accessibility differently comparing to the latest version. We ran through accessibility testing on previous Android API (21, 24, 27, 28) devices to detect the possible differences on accessibility performance.

API 21

When focusing on buttons, screen reader will not announce "double tap to activate".
There is no initial focus on setup screen.
The state/selected change for audio device select menu and video/mic/switch camera buttons may not be announced.
The snackbar on setup screen with error message will not be focused and announced.

API 27/28

The state/selected change for audio device select menu and video/mic/switch camera buttons may not be announced.
The snackbar on setup screen with error message may take more time to show up. 

Contributing to the Library

Before developing and contributing to Communication Mobile UI Library, check out our making a contribution guide.
Included in this repository is a demo of using Mobile UI Library to start a call. You can find the detail of using and developing the UI Library in the Demo Guide.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments. Also, please check our Contribution Policy.

Community Help and Support

If you find a bug or have a feature request, please raise the issue on GitHub Issues.

Known Issues

Please refer to the wiki for known issues related to the library.

Ongoing work

The chat experience is a work in progress, please be aware that chat and callwithchat components are not complete and may not be in a working state. No support or assurances are provided at this time.

Further Reading