How should I implement radio controls using Google Assistant? - android

My use case is the following:
the user is driving or he/she's somehow unable to use his smartphone with his/her hands. All the actions he/she can do are the following:
"hey goole,"
play playlist $playlistName
play $radioStation
play $podcastName of $podcastDate
pause
next radio station
previous radio station
I've seen a Google I/O '18 video where they presented App Actions (here a readable version of the presentation). One should basically create an action.xml file where the mapping between the sematic intent and the android intent is created. So, when the user says the "magic words" (semantic intent), the right (android) intent is invoked to fulfill the request.
My questions are:
How do I create a semantic intent using the Action Console/Dialogflow console? All I have seen is how to create a conversational app which is not what I need
Since on the developer guide is stated "Note: Developer preview coming soon!", am I missing something? Is there a way to do what I need using the Actions on Google console?
Note:
To get the Radio contents I use a third-party library

Unfortunately, direct invocation of the Google Assistant ("Hey Google, play Africa by Toto") is not currently available to third party developers.
However, you can use explicit invocation to trigger a Google Assistant action that could then send an HTTP request to a REST API that could communicate with your Android app.
The user can include an invocation phrase at the end of their invocation that will take them directly to the Actions on Google > Dialogflow > Firebase function they're requesting, like so:

Related

Launch my app from Google assistant if it is capable

The requirement is to launch my Android app if the user commands GA to find nearby restaurants of McDonald' where McDonald is the app name. Since the user is not mentioning that s/he wants to search in McDonald app it is not an explicit intent which the app can handle with a defined intent filter. I want to understand which component should I use to get this done.
There will be another use case that user wants to order some food item that has the name, McDonald. This suggests that ideally, I have to define action sets(set of templates) although the app doesn't converse with the user hence DialogFlow is not usable.
I contacted the Google action team after going through this Question, their response was that Invoking an Android application from an AOG app is not an available feature at this moment, this could be achieved using Google Assistant
What is the option left for this use-case?
My findings
Open app with Explicit intent
Perhaps the same use-case
Voice action
You will want to sign up for the app actions developer preview, which will expose intents in your app to be opened from the Assistant.
At Google I/O 2019, some updates were posted about App Actions. However, the current developer launch does not include the ability to implicitly call through to an app. The user will need to explicitly call out the app to use.
Official documentation
Google I/O 2019 session on App Actions (video)
Sample application on github

Calling Android app API through Google Assistant custom action

In my application, I need to use Google Assistant to ask custom questions to a user that has already logged in. Based on the user input, I need to make an API call and place an entry for the user. I can use any Google Assistant supported devices to call my API.
Google Assistant allows me to create custom actions and from the fulfillment I can see that there is an option to call the API.
My question is: How can I make an entry for the particular user in the database via API calls? What is the correct way to accomplish this? I am wondering if this can be accomplished with Google Assistant or if I will require Google Voice Actions.
Google Assistant seems to provide all the options to satisfy my requirement. However, I am unsure how to put an entry against the particular user logged into my android application from my device via API call.
Any insight to this is helpful, thank you!

How do I use Google assistant to trigger my application

I am trying to build a simple app which can be triggered by google assistant.
Like if the users say, "Hey Google, Open TestApp" or "Hey Google, perform xyz from TestApp".
What would be the best approach? Dialogflow?
Saying "Okay, Google - do [something] with [your app]" in order to open your app to fulfill a query is called a Google Voice Action and you can add these to your app quite easily. See the documentation here for full details. Keep in mind - for these to work, your app does need to be in the Play Store, uploaded as a beta at the very least.
The Google Assistant is a little bit different - it's more conversational and doesn't take the user directly to your app. Instead, it takes the user's input, looks for the appropriate app to handle the query, feeds the query to your app, and then returns the response, within Google Assistant itself. This is all about having a conversation with an app, from the Google Assistant, without actually opening up your app.

Google Assistance integration with Android App

I want to integrate Google Assistant in my app. I am not just for launching the the app, also to operate on it like below:
App: Hi! What are you looking for?
User: T-shirts
App: What is the size?
User: 40
App: What is the color?
User: Any / Red and blue
App: Here is the T-shirts for you
User: Show order by Popularity
App: Here it is.
Is it possible to do so by Google Assistance? Is it possible to start any activity of my app with proper intent extra?
With Actions on Google as you will need to build a server side components to handle the voice/chat interaction. For an example of the voice interaction see: https://developers.google.com/actions/extending-the-assistant
As to actually starting an app from Google Assistant. I don't believe there is a direct way.
Alternatively that seems to be possible for a select set of voice commands through Google Search Voice Actions to reach your app.
Note that Google isn't taking any more requests for custom Voice Actions:
https://developers.google.com/voice-actions/custom-actions
And that the pages doesn't seem to have been updated since 2015 so I'm unclear what is still supported or not.
From what I can tell the only part of Google Search Voice Actions that may be still around in 2017 is the ability to incorporate app data into Google Search via
Firebase App Indexing

Start Google Assistant Voice interaction

I've seen the Voice Actions API and it describes how you can create your own voice interactions that can be started by Google Assistant using keywords. This enables the user to say Ok, Google and then your keywords. Google Assistant then forwards the interaction to your android app's activity.
I'd like to go the other direction. I want to use a built-in interaction that Google Assistant already handles, but I'd like to begin the interaction from inside my app (meaning I want to pass some data to Google Assistant, or at least launch it with it listening). Does anyone know if that is possible? Each time my app detects a certain trigger, I'd like to prompt Google Assistant to begin a specific interaction with the user without them first having to say "Ok, Google".
I could do something similar by beginning my own interaction using text to speech and the speech recognizer service, but the voice sounds and work flow are so much cleaner in Google Assistant so why re-invent the wheel.
Alternatively, if there was a way to use the same voice and voice recognition used by Google Assistant I could work with that.
Any ideas?
Since you asked your question, Google has launched a developer preview of the Google Assistant SDK that sounds like it does what you want (or can). Although intended for embedded devices, it will let your users open a voice channel to the Assistant without having to say "OK Google" and get a voice response back.
There are some issues still with triggering something inside your app itself, but it is possible now and expected to improve over time. Currently you'd have to issue the command to your app out of channel - so either by having your server-side Action send your app a GCM message or by taking other actions that your app could pick up.

Categories

Resources