Skip to content

//sorisdk/com.iplateia.sorisdk/SORIAudioRecognitionService

SORIAudioRecognitionService

open class SORIAudioRecognitionService : Service

Foreground service that handles audio recognition tasks with network resilience support.

This service manages the audio recognition process, running in the foreground to ensure continuous operation. It includes comprehensive network handling capabilities to queue and retry failed requests when network connectivity is unavailable.

Key Features

  • Foreground Operation: Runs as a foreground service with user notification
  • Audio Recognition: Processes audio input to detect recognized materials
  • Network Resilience: Automatically queues failed requests when network is unavailable
  • Automatic Retry: Processes queued requests when network connectivity is restored
  • Android 15 Support: Handles time limits for foreground services on Android 15+

Network Handling

The service monitors network connectivity and automatically manages request queuing:

  • Failed requests due to network issues are queued based on configuration
  • Network state changes trigger automatic processing of pending requests
  • Expired requests (older than configured timeout) are automatically discarded

Broadcasts

The service sends the following broadcast intents:

  • Actions.CAMPAIGN_FOUND: When a campaign is successfully retrieved
  • Actions.NETWORK_ERROR: When a network error occurs during processing
  • Actions.REQUEST_QUEUED: When a request is queued for later delivery

Since

1.0.0

See also

SORIConfigfor configuration options
PendingRequestManagerfor request queue management
NetworkUtilsfor network availability checking

Constructors

SORIAudioRecognitionService[androidJvm]
constructor()

Types

NameSummary
Companion[androidJvm]
object Companion
LocalBinder[androidJvm]
inner class LocalBinder : Binder

Properties

NameSummary
api[androidJvm]
lateinit var api: SORIApiClient
CHANNEL_ID[androidJvm]
val CHANNEL_ID: String
matcher[androidJvm]
lateinit var matcher: AfpMatcher
notificationChannel[androidJvm]
lateinit var notificationChannel: NotificationChannel

Functions

NameSummary
applyPendingUpdates[androidJvm]
@Synchronized
fun applyPendingUpdates()
bindIsolatedService[androidJvm]
open fun bindIsolatedService(p0: Intent, p1: Context.BindServiceFlags, p2: String, p3: Executor, p4: ServiceConnection): Boolean
open override fun bindIsolatedService(p0: Intent, p1: Int, p2: String, p3: Executor, p4: ServiceConnection): Boolean
bindService[androidJvm]
open override fun bindService(p0: Intent, p1: ServiceConnection, p2: Context.BindServiceFlags): Boolean
open override fun bindService(p0: Intent, p1: ServiceConnection, p2: Int): Boolean
open override fun bindService(p0: Intent, p1: Context.BindServiceFlags, p2: Executor, p3: ServiceConnection): Boolean
open override fun bindService(p0: Intent, p1: Int, p2: Executor, p3: ServiceConnection): Boolean
bindServiceAsUser[androidJvm]
open override fun bindServiceAsUser(p0: Intent, p1: ServiceConnection, p2: Context.BindServiceFlags, p3: UserHandle): Boolean
open override fun bindServiceAsUser(p0: Intent, p1: ServiceConnection, p2: Int, p3: UserHandle): Boolean
checkCallingOrSelfPermission[androidJvm]
open override fun checkCallingOrSelfPermission(p0: String): Int
checkCallingOrSelfUriPermission[androidJvm]
open override fun checkCallingOrSelfUriPermission(p0: Uri, p1: Int): Int
checkCallingOrSelfUriPermissions[androidJvm]
open override fun checkCallingOrSelfUriPermissions(p0: MutableList<Uri>, p1: Int): IntArray
checkCallingPermission[androidJvm]
open override fun checkCallingPermission(p0: String): Int
checkCallingUriPermission[androidJvm]
open override fun checkCallingUriPermission(p0: Uri, p1: Int): Int
checkCallingUriPermissions[androidJvm]
open override fun checkCallingUriPermissions(p0: MutableList<Uri>, p1: Int): IntArray
checkContentUriPermissionFull[androidJvm]
open override fun checkContentUriPermissionFull(p0: Uri, p1: Int, p2: Int, p3: Int): Int
checkPermission[androidJvm]
open override fun checkPermission(p0: String, p1: Int, p2: Int): Int
checkSelfPermission[androidJvm]
open override fun checkSelfPermission(p0: String): Int
checkUriPermission[androidJvm]
open override fun checkUriPermission(p0: Uri, p1: Int, p2: Int, p3: Int): Int
open override fun checkUriPermission(p0: Uri?, p1: String?, p2: String?, p3: Int, p4: Int, p5: Int): Int
checkUriPermissions[androidJvm]
open override fun checkUriPermissions(p0: MutableList<Uri>, p1: Int, p2: Int, p3: Int): IntArray
clearState[androidJvm]
@Synchronized
fun clearState()
clearWallpaper[androidJvm]
open override fun clearWallpaper()
createAttributionContext[androidJvm]
open override fun createAttributionContext(p0: String?): Context
createConfigurationContext[androidJvm]
open override fun createConfigurationContext(p0: Configuration): Context
createContext[androidJvm]
open override fun createContext(p0: ContextParams): Context
createContextForSplit[androidJvm]
open override fun createContextForSplit(p0: String): Context
createDeviceContext[androidJvm]
open override fun createDeviceContext(p0: Int): Context
createDeviceProtectedStorageContext[androidJvm]
open override fun createDeviceProtectedStorageContext(): Context
createDisplayContext[androidJvm]
open override fun createDisplayContext(p0: Display): Context
createPackageContext[androidJvm]
open override fun createPackageContext(p0: String, p1: Int): Context
createWindowContext[androidJvm]
open override fun createWindowContext(p0: Int, p1: Bundle?): Context
open override fun createWindowContext(p0: Display, p1: Int, p2: Bundle?): Context
databaseList[androidJvm]
open override fun databaseList(): Array<String>
deleteDatabase[androidJvm]
open override fun deleteDatabase(p0: String): Boolean
deleteFile[androidJvm]
open override fun deleteFile(p0: String): Boolean
deleteSharedPreferences[androidJvm]
open override fun deleteSharedPreferences(p0: String): Boolean
enforceCallingOrSelfPermission[androidJvm]
open override fun enforceCallingOrSelfPermission(p0: String, p1: String?)
enforceCallingOrSelfUriPermission[androidJvm]
open override fun enforceCallingOrSelfUriPermission(p0: Uri, p1: Int, p2: String)
enforceCallingPermission[androidJvm]
open override fun enforceCallingPermission(p0: String, p1: String?)
enforceCallingUriPermission[androidJvm]
open override fun enforceCallingUriPermission(p0: Uri, p1: Int, p2: String)
enforcePermission[androidJvm]
open override fun enforcePermission(p0: String, p1: Int, p2: Int, p3: String?)
enforceUriPermission[androidJvm]
open override fun enforceUriPermission(p0: Uri, p1: Int, p2: Int, p3: Int, p4: String)
open override fun enforceUriPermission(p0: Uri?, p1: String?, p2: String?, p3: Int, p4: Int, p5: Int, p6: String?)
fileList[androidJvm]
open override fun fileList(): Array<String>
getApplication[androidJvm]
fun getApplication(): Application
getApplicationContext[androidJvm]
open override fun getApplicationContext(): Context
getApplicationInfo[androidJvm]
open override fun getApplicationInfo(): ApplicationInfo
getAssets[androidJvm]
open override fun getAssets(): AssetManager
getAttributionSource[androidJvm]
open override fun getAttributionSource(): AttributionSource
getAttributionTag[androidJvm]
open override fun getAttributionTag(): String?
getBaseContext[androidJvm]
open fun getBaseContext(): Context
getCacheDir[androidJvm]
open override fun getCacheDir(): File
getClassLoader[androidJvm]
open override fun getClassLoader(): ClassLoader
getCodeCacheDir[androidJvm]
open override fun getCodeCacheDir(): File
getColor[androidJvm]
fun getColor(p0: Int): Int
getColorStateList[androidJvm]
fun getColorStateList(p0: Int): ColorStateList
getContentResolver[androidJvm]
open override fun getContentResolver(): ContentResolver
getDatabasePath[androidJvm]
open override fun getDatabasePath(p0: String): File
getDataDir[androidJvm]
open override fun getDataDir(): File
getDeviceId[androidJvm]
open override fun getDeviceId(): Int
getDir[androidJvm]
open override fun getDir(p0: String, p1: Int): File
getDisplay[androidJvm]
open override fun getDisplay(): Display
getDrawable[androidJvm]
fun getDrawable(p0: Int): Drawable?
getExternalCacheDir[androidJvm]
open override fun getExternalCacheDir(): File?
getExternalCacheDirs[androidJvm]
open override fun getExternalCacheDirs(): Array<File>
getExternalFilesDir[androidJvm]
open override fun getExternalFilesDir(p0: String?): File?
getExternalFilesDirs[androidJvm]
open override fun getExternalFilesDirs(p0: String): Array<File>
getExternalMediaDirs[androidJvm]
open override fun getExternalMediaDirs(): Array<File>
getFilesDir[androidJvm]
open override fun getFilesDir(): File
getFileStreamPath[androidJvm]
open override fun getFileStreamPath(p0: String): File
getForegroundServiceType[androidJvm]
fun getForegroundServiceType(): Int
getMainExecutor[androidJvm]
open override fun getMainExecutor(): Executor
getMainLooper[androidJvm]
open override fun getMainLooper(): Looper
getNoBackupFilesDir[androidJvm]
open override fun getNoBackupFilesDir(): File
getObbDir[androidJvm]
open override fun getObbDir(): File
getObbDirs[androidJvm]
open override fun getObbDirs(): Array<File>
getOpPackageName[androidJvm]
open override fun getOpPackageName(): String
getPackageCodePath[androidJvm]
open override fun getPackageCodePath(): String
getPackageManager[androidJvm]
open override fun getPackageManager(): PackageManager
getPackageName[androidJvm]
open override fun getPackageName(): String
getPackageResourcePath[androidJvm]
open override fun getPackageResourcePath(): String
getParams[androidJvm]
open override fun getParams(): ContextParams?
getRemainingServiceTime[androidJvm]
fun getRemainingServiceTime(): Long
Gets the remaining service runtime in milliseconds before the Android 15 time limit. Returns -1 if there's no time limit (app doesn't target Android 15+) or if the service is not running.
getResources[androidJvm]
open override fun getResources(): Resources
getSharedPreferences[androidJvm]
open override fun getSharedPreferences(p0: String, p1: Int): SharedPreferences
getString[androidJvm]
fun getString(p0: Int): String
fun getString(p0: Int, vararg p1: Any): String
getSystemService[androidJvm]
fun <T : Any> getSystemService(p0: Class<T>): T
open override fun getSystemService(p0: String): Any
getSystemServiceName[androidJvm]
open override fun getSystemServiceName(p0: Class<*>): String?
getText[androidJvm]
fun getText(p0: Int): CharSequence
getTheme[androidJvm]
open override fun getTheme(): Resources.Theme
getWallpaper[androidJvm]
open override fun getWallpaper(): Drawable
getWallpaperDesiredMinimumHeight[androidJvm]
open override fun getWallpaperDesiredMinimumHeight(): Int
getWallpaperDesiredMinimumWidth[androidJvm]
open override fun getWallpaperDesiredMinimumWidth(): Int
grantUriPermission[androidJvm]
open override fun grantUriPermission(p0: String, p1: Uri, p2: Int)
initializeApiClient[androidJvm]
@Synchronized
fun initializeApiClient(applicationId: String, secretKey: String, sessionId: String)
isApproachingTimeLimit[androidJvm]
fun isApproachingTimeLimit(): Boolean
Checks if the service is approaching the Android 15 time limit. Returns true if less than 5 minutes remain before the time limit. Returns false for apps that don't target Android 15+.
isDeviceProtectedStorage[androidJvm]
open override fun isDeviceProtectedStorage(): Boolean
isRestricted[androidJvm]
open override fun isRestricted(): Boolean
isUiContext[androidJvm]
open override fun isUiContext(): Boolean
moveDatabaseFrom[androidJvm]
open override fun moveDatabaseFrom(p0: Context, p1: String): Boolean
moveSharedPreferencesFrom[androidJvm]
open override fun moveSharedPreferencesFrom(p0: Context, p1: String): Boolean
obtainStyledAttributes[androidJvm]
fun obtainStyledAttributes(p0: IntArray): TypedArray
fun obtainStyledAttributes(p0: AttributeSet?, p1: IntArray): TypedArray
fun obtainStyledAttributes(p0: Int, p1: IntArray): TypedArray
fun obtainStyledAttributes(p0: AttributeSet?, p1: IntArray, p2: Int, p3: Int): TypedArray
onBind[androidJvm]
open override fun onBind(intent: Intent): IBinder?
onConfigurationChanged[androidJvm]
open override fun onConfigurationChanged(p0: Configuration)
onCreate[androidJvm]
open override fun onCreate()
onDestroy[androidJvm]
open override fun onDestroy()
onLowMemory[androidJvm]
open override fun onLowMemory()
onRebind[androidJvm]
open fun onRebind(p0: Intent)
onStart[androidJvm]
open fun onStart(p0: Intent, p1: Int)
onStartCommand[androidJvm]
open override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int
onTaskRemoved[androidJvm]
open fun onTaskRemoved(p0: Intent)
onTimeout[androidJvm]
open fun onTimeout(p0: Int)
[androidJvm]
open override fun onTimeout(startId: Int, fgsType: Int)
Called when the foreground service has reached its time limit on Android 15+. The service must stop itself within this callback. This is only called by the system when:
onTrimMemory[androidJvm]
open override fun onTrimMemory(p0: Int)
onUnbind[androidJvm]
open fun onUnbind(p0: Intent): Boolean
openFileInput[androidJvm]
open override fun openFileInput(p0: String): FileInputStream
openFileOutput[androidJvm]
open override fun openFileOutput(p0: String, p1: Int): FileOutputStream
openOrCreateDatabase[androidJvm]
open override fun openOrCreateDatabase(p0: String, p1: Int, p2: SQLiteDatabase.CursorFactory): SQLiteDatabase
open override fun openOrCreateDatabase(p0: String, p1: Int, p2: SQLiteDatabase.CursorFactory, p3: DatabaseErrorHandler?): SQLiteDatabase
peekWallpaper[androidJvm]
open override fun peekWallpaper(): Drawable
registerComponentCallbacks[androidJvm]
open override fun registerComponentCallbacks(p0: ComponentCallbacks)
registerDeviceIdChangeListener[androidJvm]
open override fun registerDeviceIdChangeListener(p0: Executor, p1: IntConsumer)
registerReceiver[androidJvm]
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter): Intent?
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter, p2: Int): Intent?
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter, p2: String?, p3: Handler?): Intent?
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter, p2: String?, p3: Handler?, p4: Int): Intent?
removeStickyBroadcast[androidJvm]
open override fun removeStickyBroadcast(p0: Intent)
removeStickyBroadcastAsUser[androidJvm]
open override fun removeStickyBroadcastAsUser(p0: Intent, p1: UserHandle)
revokeSelfPermissionOnKill[androidJvm]
open fun revokeSelfPermissionOnKill(p0: String)
revokeSelfPermissionsOnKill[androidJvm]
open override fun revokeSelfPermissionsOnKill(p0: MutableCollection<String>)
revokeUriPermission[androidJvm]
open override fun revokeUriPermission(p0: Uri, p1: Int)
open override fun revokeUriPermission(p0: String, p1: Uri, p2: Int)
sendBroadcast[androidJvm]
open override fun sendBroadcast(p0: Intent)
open override fun sendBroadcast(p0: Intent, p1: String?)
open override fun sendBroadcast(p0: Intent, p1: String?, p2: Bundle?)
sendBroadcastAsUser[androidJvm]
open override fun sendBroadcastAsUser(p0: Intent, p1: UserHandle)
open override fun sendBroadcastAsUser(p0: Intent, p1: UserHandle, p2: String?)
sendBroadcastWithMultiplePermissions[androidJvm]
open fun sendBroadcastWithMultiplePermissions(p0: Intent, p1: Array<String>)
sendOrderedBroadcast[androidJvm]
open override fun sendOrderedBroadcast(p0: Intent, p1: String?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: Bundle?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: BroadcastReceiver?, p3: Handler?, p4: Int, p5: String?, p6: Bundle?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: Bundle?, p3: BroadcastReceiver?, p4: Handler?, p5: Int, p6: String?, p7: Bundle?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: String?, p3: BroadcastReceiver?, p4: Handler?, p5: Int, p6: String?, p7: Bundle?)
open fun sendOrderedBroadcast(p0: Intent, p1: Int, p2: String?, p3: String?, p4: BroadcastReceiver?, p5: Handler?, p6: String?, p7: Bundle?, p8: Bundle?)
sendOrderedBroadcastAsUser[androidJvm]
open override fun sendOrderedBroadcastAsUser(p0: Intent, p1: UserHandle, p2: String?, p3: BroadcastReceiver?, p4: Handler?, p5: Int, p6: String?, p7: Bundle?)
sendStickyBroadcast[androidJvm]
open override fun sendStickyBroadcast(p0: Intent)
open override fun sendStickyBroadcast(p0: Intent, p1: Bundle?)
sendStickyBroadcastAsUser[androidJvm]
open override fun sendStickyBroadcastAsUser(p0: Intent, p1: UserHandle)
sendStickyOrderedBroadcast[androidJvm]
open override fun sendStickyOrderedBroadcast(p0: Intent, p1: BroadcastReceiver?, p2: Handler?, p3: Int, p4: String?, p5: Bundle?)
sendStickyOrderedBroadcastAsUser[androidJvm]
open override fun sendStickyOrderedBroadcastAsUser(p0: Intent, p1: UserHandle, p2: BroadcastReceiver?, p3: Handler?, p4: Int, p5: String?, p6: Bundle?)
setTheme[androidJvm]
open override fun setTheme(p0: Int)
setWallpaper[androidJvm]
open override fun setWallpaper(p0: Bitmap)
open override fun setWallpaper(p0: InputStream)
startActivities[androidJvm]
open override fun startActivities(p0: Array<Intent>)
open override fun startActivities(p0: Array<Intent>, p1: Bundle?)
startActivity[androidJvm]
open override fun startActivity(p0: Intent)
open override fun startActivity(p0: Intent, p1: Bundle?)
startForeground[androidJvm]
fun startForeground(p0: Int, p1: Notification)
fun startForeground(p0: Int, p1: Notification, p2: Int)
startForegroundService[androidJvm]
open override fun startForegroundService(p0: Intent): ComponentName?
startInstrumentation[androidJvm]
open override fun startInstrumentation(p0: ComponentName, p1: String?, p2: Bundle?): Boolean
startIntentSender[androidJvm]
open override fun startIntentSender(p0: IntentSender, p1: Intent?, p2: Int, p3: Int, p4: Int)
open override fun startIntentSender(p0: IntentSender, p1: Intent?, p2: Int, p3: Int, p4: Int, p5: Bundle?)
startService[androidJvm]
open override fun startService(p0: Intent): ComponentName?
stopForeground[androidJvm]
fun stopForeground(p0: Boolean)
fun stopForeground(p0: Int)
stopSelf[androidJvm]
fun stopSelf()
fun stopSelf(p0: Int)
stopSelfResult[androidJvm]
fun stopSelfResult(p0: Int): Boolean
stopService[androidJvm]
open override fun stopService(p0: Intent): Boolean
unbindService[androidJvm]
open override fun unbindService(p0: ServiceConnection)
unregisterComponentCallbacks[androidJvm]
open override fun unregisterComponentCallbacks(p0: ComponentCallbacks)
unregisterDeviceIdChangeListener[androidJvm]
open override fun unregisterDeviceIdChangeListener(p0: IntConsumer)
unregisterReceiver[androidJvm]
open override fun unregisterReceiver(p0: BroadcastReceiver)
updateConfig[androidJvm]
fun updateConfig(newConfig: SORIConfig)
Update the configuration for the service
updateServiceGroup[androidJvm]
open override fun updateServiceGroup(p0: ServiceConnection, p1: Int, p2: Int)