I'm having trouble integrating Google Assistant with the app I'm working on. The app does VOIP calls with groups and private assets and we want to allow the customers to say something like Call {FUBU} Group General
or Call {FUBU} Private Michael
, where the app name can be omitted or not.
The problem is that the deep links are working, tested from terminal, App Actions Test Tool
also works, but when trying with the Assistant all I end up is a question regarding who I want to call (from the phone contacts), but not the question of which app I want to handle the command or the app being opened.
An issue was opened on google IssueTracker
, but it's in the same state for more than one week.
Here are the relevant changes regarding Actions. In the Manifest
, for the Launcher
activity I've added the following
<intent-filter android:label=“FUBU CALL">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data android:scheme="https"
android:host=“fubu.call.safemobile.com"
android:pathPrefix="/start" />
<!-- note that the leading "/" is required for pathPrefix-->
</intent-filter>
That I've tested using db shell am start -a android.intent.action.VIEW -d "https://fubu.call.safemobile.com/start"
and it works fine.
Here is the actions.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- This is a sample actions.xml -->
<actions>
<action intentName="actions.intent.CREATE_CALL">
<fulfillment urlTemplate="https://fubu.call.safemobile.com/start{?callFormat,name}">
<parameter-mapping urlParameter="callFormat" intentParameter="call.callFormat" required="true" />
<!-- Eg. name = "John Doe" -->
<parameter-mapping urlParameter="name" intentParameter="call.participant.name" />
</fulfillment>
<!-- Provide a fallback fulfillment with no required parameters. For example, to your app search or router deeplink -->
<fulfillment urlTemplate="https://fubu.call.safemobile.com/start"/>
<!-- Define parameters with inventories here -->
<parameter name="call.callFormat">
<entity-set-reference entitySetId="callFormatEntitySet"/>
</parameter>
<entity-set entitySetId="callFormatEntitySet">
<entity
name="@string/group_call_entity"
identifier="group" />
<entity
name="@string/private_call_entity"
identifier="private" />
</entity-set>
</action>
</actions>
And also for reference, here is the JSON used in the App Actions Test Tool
that works
{
"@type": "Call",
"callFormat": “Private”,
"@context": "http://schema.googleapis.com",
"participant": {
"@type": "Person",
"name": “Cristi"
}
}
I suspect that I'm having a configuration issue, but I'm unable to detect it.
Any help will be greatly appreciated. Thanks in advance.
We're currently investigating. Thanks for reporting it. Please follow more details on this bug through this tracker https://issuetracker.google.com/issues/170720919.