This page assists Partner developers in understanding the demo app capabilities and which new features are coming up in upcoming releases. The Demo App is included with the SDK package. Developers are encouraged to review the Demo App code to understand one possible implementation of the wrapper code around the SDK for integration into the Partner’s application.
Release 2: Android Passive Demo App functionality
Language: Sample code developed in Kotlin language (easily translatable into Native Java)
Core functionality includes User Enrollment/Re-enrollment, Voice analysis with continuous verification, Score History, Metering
Foreground and Background: Continuing Voice analysis while the app is running in the Foreground and Background
Incoming Call Handling: Resuming Voice analysis after an incoming call ends while the app is active in the Foreground
Notification: Notification to resume Voice analysis after incoming call ends when the app was running in the Background
Screen Lock: Voice analysis functionality operates with a screen lock when the app runs in the Background and Foreground.
Release 3: Planned Enhancements to Android Passive Demo App (June 2024)
Outgoing Call: Handling notifications during outgoing calls
Analysis Window: A scheduling window where users can set time slots for voice analysis
User will receive notifications to start Voice analysis as per the schedule
Closing Window: Ending Voice analysis window once the desired number of sessions is completed
Pause: Pause/Play voice analysis button on the home screen to Pause Passive voice acquisition until Play is selected
Locked Screen: Handling notifications during an incoming call with the locked screen
Additional Functionality can be offered to Partners upon request:
Cross-Platform: Sample code base in React Native, Flutter, or other Cross-platform technology. Contact Sonde
Android system limitations:
Passive implementation requires access to a microphone and, at times, will compete with other apps' requests for microphone access. Sonde’s Demo App is a sample application that shows best practices on how to manage some of the Android’s limitations. The following are
Passive Demo Android documentation for getting mic access when the app is in the background:
https://developer.android.com/develop/background-work/services/foreground-services#wiu-restrictions
Android devices have an option for disabling execution in background mode. Also, for battery optimization, background mode may be disabled. When disabled, Partner’s app access to the microphone will not be available.
Passive - A Typical Day (see diagram below):
The diagram below shows several use cases for illustrating foreground and background app behavior. There are two tracks that are shown, foreground and background and multiple users case identified as ( # ) and described below:
(1) Screen Lock (Foreground / Background)
When the device is locked, Passive analysis will continue
If the user starts the voice analysis and locks the screen or the user starts voice analysis and moves the app to the background and locks the screen, analysis will continue.
(2) Notification Tray:
If the Passive app is not running, a notification can be added to remind the users to start the app (which can enable Passive)
(3) Incoming/Outgoing Voice Call
Foreground:
The voice analysis will pause when the app is running in the foreground and the user receives an incoming call.
For outgoing call, the app will move to Background
After the call ends, the voice analysis will automatically resume.
Background:
If the app is running in the background and the user receives an incoming call, the passive analysis will pause.
After the call ends, the app may send a notification stating, "Click here to start the analysis."
Upon clicking the notification, the app will launch, and the voice analysis will automatically resume.
For outgoing call, analysis stops and does not re-start unless user manually start. A notification can be generated to remind the user to restart (Release 3)
(4) Starting Other Apps (such as Instagram, Facebook, Messaging, etc.)
Switch from Foreground to Background:
If the user is using the app in the foreground and then switches to other apps which are not using the microphone like Instagram, WhatsApp, or Facebook, Partner’s app will move to the background.
The voice analysis will continue running in the background and can generate the scores in the background.
The user can observe the progress of voice analysis from the notification.
If other app requires a microphone, Passive will lose access to incoming voice and Passive SDK will not be scoring these samples.
When the other app is closed or releases the microphone access, Passive app will start the voice analysis without any user intervention.