feat(android): Add voice interaction service for app launch

This commit is contained in:
cogwheel0
2025-11-21 19:16:51 +05:30
parent 4166862d08
commit 20e57e9f88
5 changed files with 64 additions and 8 deletions

View File

@@ -32,6 +32,18 @@
android:allowBackup="false"
android:fullBackupContent="false"
android:usesCleartextTraffic="true">
<service
android:name=".ConduitVoiceInteractionSessionService"
android:permission="android.permission.BIND_VOICE_INTERACTION"
android:exported="true">
<meta-data
android:name="android.voice_interaction"
android:resource="@xml/voice_interaction_service" />
<intent-filter>
<action android:name="android.service.voice.VoiceInteractionService" />
</intent-filter>
</service>
<activity
android:name=".MainActivity"
android:exported="true"

View File

@@ -0,0 +1,26 @@
package app.cogwheel.conduit
import android.content.Context
import android.content.Intent
import android.service.voice.VoiceInteractionSession
import android.os.Bundle
import android.app.assist.AssistStructure
import android.app.assist.AssistContent
class ConduitVoiceInteractionSession(context: Context) : VoiceInteractionSession(context) {
override fun onHandleAssist(
data: Bundle?,
structure: AssistStructure?,
content: AssistContent?
) {
super.onHandleAssist(data, structure, content)
android.util.Log.d("ConduitVoiceSession", "onHandleAssist called")
// Launch the main activity when the assistant is triggered
val intent = Intent(context, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(intent)
}
}

View File

@@ -0,0 +1,11 @@
package app.cogwheel.conduit
import android.service.voice.VoiceInteractionSession
import android.service.voice.VoiceInteractionSessionService
import android.os.Bundle
class ConduitVoiceInteractionSessionService : VoiceInteractionSessionService() {
override fun onNewSession(args: Bundle?): VoiceInteractionSession {
return ConduitVoiceInteractionSession(this)
}
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<voice-interaction-service xmlns:android="http://schemas.android.com/apk/res/android"
android:sessionService="app.cogwheel.conduit.ConduitVoiceInteractionSessionService"
android:recognitionService="android.speech.RecognitionService"
android:settingsActivity="app.cogwheel.conduit.MainActivity"
android:supportsAssist="true"
android:supportsLocalInteraction="true" />