Quick Start (Android)
1) Add the CrowdGlow module into your app
Add the CrowdGlowSDK.aar file from the SDK to the app/libs directory of your app. You may need to create the libs directory if it is not already there.

2) Add CrowdGlow SDK to your build gradle
Add the following implementation line into your dependancies section of your build.gradle.kts (Module: App)
implementation(files("libs/CrowdGlowSDK.aar"))
3) Add the CrowdGlow View to the root level of your app
Add the CrowdGlow View to the top level of your app. It should be placed on top of all over views at the root level of the app. It is fully transparent and will not block any taps or gestures to your app beneath it. It will only become visible when it receives a light show signal from the CrowdGlow system.
import com.crowdglow.sdk.*
@Composable
fun CrowdGlowView() {
AndroidView(
factory = { context ->
CrowdGlowView(context,
{ //Light Show Started },
{ //Light Show Stopped },
"CROWDGLOWAPIKEY",
arrayOf<String>()
)
}
)
}
//Place this view at the highest Z level of your app
CrowdGlowView()
4) Add the CrowdGlow Status View
The CrowdGlow status view can be placed any where you wish in your app, it is a simple status label and button depending on the current CrowdGlow status. It should be placed in a logical location in your app, so the user knows when / where at your event they can use the light show. Ideally this should be a light show / event specific section of the app, and easily found as the user will need to find this status view and tap the “Allow Light Show” button once to be able to take part.
You can pass in colours for the text and button, the view has no background so can easily fit in within your existing app design.
@Composable
fun CrowdGlowStatusView() {
AndroidView(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight(),
factory = { context -> CrowdGlowStatusView(context, "#ffffff", "sans-serif", 16f, Gravity.CENTER, "#007AFF", "#FFFFFF", "sans-serif", 16f, 60, 1) }
)
}
//Place this view at your preferred location in your app
CrowdGlowStatusView()
5) Copy CGAssets folder
Copy the CGAssets folder from the SDK into the assets folder in the root of your app.
CGAssets contains Gobos, Palettes and optionally Maps in a single folder.

6) Add permissions to your Android Manifest
The CrowdGlow SDK requires the following permissions to be added to your app AndroidManifest.xml
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" android:usesPermissionFlags="neverForLocation" />
<uses-permission android:name="android.permission.LOCATION" android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>

7) Add Localizable Strings
The following strings can be added to your apps res/values/strings.xml file and to allow you to customise the messages show in the CrowdGlow Status view.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="onboarding_label">This app makes your phone part of tonight’s light show. To join in, tap below and allow Bluetooth usage when prompted.\n\nWe never connect to your phone and no data ever leaves your device.</string>
<string name="inside_venue">Open this app during the show when you are asked to! You’ll become part of the light show!</string>
<string name="outside_venue">Open this app when you are at the event site. You’ll become part of the light show!</string>
</resources>
8) Test & Build your app for the Google Play store
You can now build the app and test the functionality using the CrowdGlow demo transmitter that we have sent you. Additionally, send a copy of your android app build to joe@crowdglow.uk and we will fully test the CrowdGlow functionality to verify correct integration.