You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository contains an example of how to use the AuviousSDK in an Android project.
2
+
This repository contains an example of how to use the [Auvious](https://auvious.com/) Android SDK in an Android project.
3
3
4
4
To use the AuviousSDK in your project, follow these steps:
5
5
@@ -14,7 +14,16 @@ To use the AuviousSDK in your project, follow these steps:
14
14
}
15
15
```
16
16
17
-
2. Add `https://nexus.auvious.com/repository/maven-releases` as a Nexus repository. If you're using Gradle, add this to your `build.gradle` repositories section:
17
+
2. **Minimum SDK Version**: The SDK now requires Android API 23 (Android 6.0 Marshmallow) or higher. Ensure your app's `minSdk` is set to at least 23:
18
+
```groovy
19
+
android {
20
+
defaultConfig {
21
+
minSdk 23
22
+
}
23
+
}
24
+
```
25
+
26
+
3. Add `https://nexus.auvious.com/repository/maven-releases` as a Nexus repository. If you're using Gradle, add this to your `build.gradle` repositories section:
18
27
```groovy
19
28
repositories {
20
29
mavenCentral()
@@ -24,18 +33,53 @@ To use the AuviousSDK in your project, follow these steps:
24
33
}
25
34
```
26
35
27
-
3. Include the Auvious SDK dependency. Add this line to your `build.gradle` dependencies section:
36
+
4. Include the Auvious SDK dependency. Add this line to your `build.gradle` dependencies section:
28
37
```groovy
29
38
dependencies {
30
39
//... other dependencies
31
40
// Auvious SDK
32
-
implementation 'com.auvious.android:sdk:1.1.7'
41
+
implementation 'com.auvious.android:sdk:1.2.0'
33
42
}
34
43
```
35
44
45
+
5.**Required Permissions**: Ensure your `AndroidManifest.xml` includes these permissions:
**To disable screen sharing** and avoid the foreground service permissions, set `screenShareAvailability` to `"false"` in your conference options, and you can remove the foreground service permissions from your manifest:
6.**Google Play Console Requirements** (for apps targeting Android 14+ / API 34+):
63
+
64
+
If your app uses screen sharing functionality, you must complete the **Foreground Service declaration** in Google Play Console before publishing:
65
+
66
+
1. Navigate to: **Play Console → Your App → App content → Foreground service**
67
+
2. Declare the `mediaProjection` foreground service type
68
+
3. Provide:
69
+
-**Description** of screen sharing functionality in your app
70
+
-**Video demonstration** showing:
71
+
- User action that initiates screen sharing
72
+
- Screen sharing in progress with notification visible
73
+
- User action to stop screen sharing
74
+
-**Justification** explaining the user benefit
75
+
76
+
**Important**: Google requires video evidence showing the feature is user-initiated. Failure to complete this declaration will result in app rejection during review.
77
+
78
+
For more details, see [Google's foreground service requirements](https://support.google.com/googleplay/android-developer/answer/13392821).
79
+
36
80
## Usage Example
37
81
38
-
To start a conference, use the `AuviousSimpleConferenceActivity` with configurable call options, such as microphone, camera, and speaker settings:
82
+
To start a conference, use the `AuviousSimpleConferenceActivity` with configurable call options:
39
83
40
84
```kotlin
41
85
privatefunstartSimpleConferenceActivity(
@@ -45,7 +89,10 @@ private fun startSimpleConferenceActivity(
45
89
availableMicButton:Boolean = true,
46
90
availableCamButton:Boolean = true,
47
91
availableSpeakerButton:Boolean = true,
48
-
customConferenceBackgroundColor:Boolean = false
92
+
customConferenceBackgroundColor:Boolean = false,
93
+
enablePipMenu:Boolean = true,
94
+
enableScreenShare:Boolean = true,
95
+
autoEnterPipOnHome:Boolean = true
49
96
) {
50
97
val callOptions =AuviousSimpleConferenceOptions(
51
98
"customer",
@@ -54,64 +101,126 @@ private fun startSimpleConferenceActivity(
54
101
mapOf(
55
102
"ticket" to binding.ticketText.text.toString(),
56
103
"grant_type" to "password",
104
+
// Media controls - initial state
57
105
AuviousSimpleConferenceOptions.speakerOption to (!enableEarPieceSpeaker).toString(),
58
106
AuviousSimpleConferenceOptions.microphoneOption to enableMic.toString(),
59
107
AuviousSimpleConferenceOptions.cameraOption to enableCam.toString(),
108
+
// Button visibility
60
109
AuviousSimpleConferenceOptions.cameraAvailable to availableCamButton.toString(),
61
110
AuviousSimpleConferenceOptions.microphoneAvailable to availableMicButton.toString(),
62
111
AuviousSimpleConferenceOptions.speakerAvailable to availableSpeakerButton.toString(),
63
-
AuviousSimpleConferenceOptions.conferenceBackgroundColor to if (customConferenceBackgroundColor) Color.parseColor("#3366ff").toString() elseColor.BLACK.toString()
112
+
// UI customization
113
+
AuviousSimpleConferenceOptions.conferenceBackgroundColor to if (customConferenceBackgroundColor) Color.parseColor("#3366ff").toString() elseColor.BLACK.toString(),
114
+
// Picture-in-Picture options (Android 8.0+)
115
+
AuviousSimpleConferenceOptions.pipAvailability to enablePipMenu.toString(),
116
+
AuviousSimpleConferenceOptions.autoEnterPip to autoEnterPipOnHome.toString(),
117
+
// Screen sharing (Android 5.0+)
118
+
AuviousSimpleConferenceOptions.screenShareAvailability to enableScreenShare.toString()
-**Description**: Controls camera button visibility.
166
+
-`"true"`: Users can toggle the camera on/off.
167
+
-`"false"`: Camera button is hidden (camera state is locked to initial setting).
103
168
104
169
-**Speaker Button Availability**
105
-
-**Key**: `speaker_available`
106
-
-**Value**: `true` or `false`
107
-
-`true`: The speaker button will be available for toggling on/off.
108
-
-`false`: The speaker button will be hidden.
109
-
110
-
-**Custom Conference Background Color**
111
-
-**Key**: `conference_background_color`
112
-
-**Value**: [Color](https://developer.android.com/reference/android/graphics/Color) object or a hex color by using the [Color.parseColor()](https://developer.android.com/reference/android/graphics/Color#parseColor(java.lang.String)) method
113
-
- Set a custom color in conference background. Otherwise, the default background color will be black.
-**Description**: Sets a display name for the participant in the conference.
114
223
115
224
---
116
225
117
-
With these additional configurations, you have greater control over the UI and functionality within the [Auvious](www.auvious.com) conference experience, allowing you to fine-tune the behavior and appearance for your users.
226
+
With these configurations, you have comprehensive control over the UI and functionality within the [Auvious](https://auvious.com/) conference experience, allowing you to fine-tune the behavior and appearance for your users.
@@ -103,7 +95,10 @@ class MainActivity : AppCompatActivity() {
103
95
availableMicButton:Boolean = true,
104
96
availableCamButton:Boolean = true,
105
97
availableSpeakerButton:Boolean = true,
106
-
customConferenceBackgroundColor:Boolean = false
98
+
customConferenceBackgroundColor:Boolean = false,
99
+
enablePipMenu:Boolean = true,
100
+
enableScreenShare:Boolean = true,
101
+
autoEnterPipOnHome:Boolean = true
107
102
) {
108
103
109
104
val callOptions =AuviousSimpleConferenceOptions(
@@ -119,7 +114,12 @@ class MainActivity : AppCompatActivity() {
119
114
AuviousSimpleConferenceOptions.cameraAvailable to availableCamButton.toString(),
120
115
AuviousSimpleConferenceOptions.microphoneAvailable to availableMicButton.toString(),
121
116
AuviousSimpleConferenceOptions.speakerAvailable to availableSpeakerButton.toString(),
122
-
AuviousSimpleConferenceOptions.conferenceBackgroundColor to if (customConferenceBackgroundColor) Color.parseColor("#3366ff").toString() elseColor.BLACK.toString()
117
+
AuviousSimpleConferenceOptions.conferenceBackgroundColor to if (customConferenceBackgroundColor) Color.parseColor("#3366ff").toString() elseColor.BLACK.toString(),
118
+
// Picture-in-Picture options (Android 8.0+)
119
+
AuviousSimpleConferenceOptions.pipAvailability to enablePipMenu.toString(),
120
+
AuviousSimpleConferenceOptions.autoEnterPip to autoEnterPipOnHome.toString(),
121
+
// Screen sharing (Android 5.0+)
122
+
AuviousSimpleConferenceOptions.screenShareAvailability to enableScreenShare.toString()
0 commit comments