Most readers are well-aware Google assistant is going to be the big treat later this year. It will soon become a meaningful part of new apps and products like Allo and Google Home, and it will surely introduce new features and capabilities as it evolves many existing ones into something new. A teardown of the latest Google app update reveals a little more about what we can expect when the assistant comes out.

What's New

2016-08-11 21.34.142016-08-11 21.34.24

This update doesn't appear to bring much in the way of immediately usable additions, but there is one minor change worth noting. The overflow menu on the Google Now on Tap screen contains a new 'Translate' command. Tap on it and the current screen will be read and redrawn with all of the text translated to a familiar language.

This isn't a new feature, only a new way to access it. Google added the translation feature last month, but it was only available if Now on Tap detected multiple languages on a screen and presented a card. With the Translate command permanently available in the overflow menu, it can be activated at any time.

Teardown

Disclaimer: Teardowns are based on evidence found inside of apks (Android's application package) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are totally and completely wrong. Even when predictions are correct, there is always a chance that plans could change or may be canceled entirely. Much like rumors, nothing is certain until it's officially announced and released.

The features discussed below are probably not live yet, or may only be live for a small percentage of users. Unless stated otherwise, don't expect to see these features if you install the apk.

Google assistant

Last month's update to the Google app answered a few questions about the Google assistant and gave details about how to configure and use Google Home. The latest version continues to add more information and closes up some of the gaps. There are new pages for the Settings screen and some reasonably telling text.

Before getting to the big items, the logo for Google assistant was finally added.

opa_logo

opa_logo

Language support may be very limited at launch

Many users lament over Google's tendency to launch new products in a very restricted set of geographical regions. Whether you consider it justified or outright hate the practice, it's not likely to end anytime soon. New text in the apk gives reason to suspect the upcoming Google assistant may be limited by more than geography.

A pair of strings explain that Google assistant is only functional with English and Deutsch (German) at this time. Users with another primary language selected will be given the option to switch to one of the supported languages.

<string name="opa_error_unsupported_locale_message">In order to access your Google assistant, choose English or Deutsch (Deutschland) in the Search Language section of Google App Settings.</string>
<string name="opa_error_unsupported_locale_title">For now, the Google assistant is only in English and Deutsch</string>
<string name="opa_error_unsupported_locale_button">CHANGE LANGUAGE</string>

<string name="assistant_language_not_supported">%s is not yet supported by Google assistant</string>

This is obviously a temporary situation and plenty of other languages will surely join the list, many will even be added prior to launch. However, the Google assistant is a fundamental part of at least two products (Allo and Google Home) scheduled for release this year, which means there's less than four months remaining to squeeze in as many common dialects as possible. Nevertheless, many people should prepare for the very real possibility that their preferred language may not be immediately available.

More Settings

Last month's teardown focused heavily on the Settings screen and any options it would contain for setting up and managing Google assistant and Google Home. This version contains two new screens for configuring your current device and other Google Home hardware located around you. The first is named assistant_device_id_nexus_settings.xml and shows the title "Settings on this device." The lines below list the type of control, its title, and a summary.

  • Switch: Google assistant – "Turns the assistant on and off"
  • Switch: Use screen context – "Asks Google to show you info related to what's on your screen when you hold the Home button or search by voice"
  • Row: Voice (this one will open up the Settings screen for voice commands).

The most interesting takeaway from this is the second toggle. It determines if Google assistant will automatically read your screen with a long-press of the Home button. Sound familiar? It should, that's precisely what we already have with Now on Tap. It might be a bit premature to make any guesses about branding, but this suggests the Now on Tap moniker may be retired as this feature becomes a part of Google assistant. That's obviously far from a sure thing and could easily be interpreted other ways, but it wouldn't be too surprising to see the generally underused Now on Tap rebranded as it continues to evolve.

Again, notice that "nexus" is part of the layout filename, further suggesting Google assistant will be a first-party feature and may not immediately appear on partner devices – if ever.

The second screen is unsurprisingly dedicated to Google Home. It's named assistant_device_id_google_home_settings.xml and has the title "Settings on," immediately followed by a dropdown list with any paired Google Home devices. Picking a device from the list will introduce these settings:

  • Switch: Personal Info Permission – "Allow Google to access your calendar, etc.
  • Switch: YouTube Restricted Mode – "Show restricted content on YouTube"
  • Pop-up list: Assistant language

The options on this screen are a little more interesting in terms of function. The first determines if your Google Home devices will have access to your personal information. For many of us, this question is a bit of a no-brainer when it is in reference to our personal phone, tablet, or even computer. It's not as obvious when you consider that information might be made available to other people in the same house, like roommates, children, house guests, or possibly even intruders. Your personal phone can be protected by a lockscreen and various means of security that automatically take over after a period of time, but the only security Google Home seems to have is the lock on your front door. This certainly isn't meant as an alarmist warning about privacy, but it is a practical reason to think through this particular setting before enabling it out of habit.

The second option is a little more obvious. It's simply an option to block "restricted" videos on YouTube, which completely makes sense if you live with or have children over to your home. While this would prevent somebody from giving a voice command to Google Home that could display inappropriate material to a television, the language isn't entirely clear about whether or not this would prevent somebody from finding an objectionable video on a personal phone and then manually sending it to a Chromecast.

<string name="google_home_device_youtube_restricted_mode_summary">Show restricted content on Youtube</string>
<string name="google_home_device_youtube_restricted_mode_title">Youtube Restricted Mode</string>

User-Defined Actions

The previous teardown left relatively few things unexplored, but there was a brief mention of user-defined actions with no details to speak of. At the time, it was only a pair of strings indicating "personal voice actions" would become a part of the experience, but new strings give a bit more shape to what will be possible.

Users will be able to define custom triggers, actions, and responses. A trigger will be in the form of a phrase to be spoken, for example: "order a pizza." This can be attached to an action that would, quite obviously, place an order for pizza. It looks like responses can be designed to prompt for more information, perhaps to ask what type of pizza or which toppings to add. It's also going to be possible to extend the original trigger with alternate phrases like, "hey Google, I need some pizza therapy."

<string name="user_defined_action_hint_text_add_a_response">Add a response</string>
<string name="user_defined_action_hint_text_add_a_trigger">Add a trigger</string>
<string name="user_defined_action_hint_text_add_a_voice_action">Add a voice action</string>

<string name="user_defined_action_trigger_phase_title">When I say</string>
<string name="user_defined_action_prompt_title">You should say</string>
<string name="user_defined_action_original_action_title">You should do</string>

<string name="user_defined_action_action_editor_title">Add new action</string>
<string name="user_defined_action_add_another_response">Another response</string>
<string name="user_defined_action_add_another_trigger">Another way to say it</string>

It's easy enough to envision simple interactions built from just pairs of triggers and actions, possibly with a few responses sprinkled into the mix. However, it might be possible for these actions to become more complicated and highly customizable. The limitations aren't clear, but there are layouts and a few more strings referred to as "immersive actions" that may be part of creating user-defined actions. (Note: this is more of an educated guess than a clear link, so it's entirely possible immersive actions are a separate feature.)

The strings aren't very helpful. The most relevant among them are a couple for adding nicknames to people like your family members, work associates, and very close friends. Naturally, these will make it possible to speak more comfortably with Google assistant.

The layouts make more sense for the actual construction of workflows. There are quite a few "editor" UIs, and of particular importance are the dozen or so layouts with "argument" in the name. That term is extremely common to software development, used in place of the word "parameter" to describe values that are sent into method calls. To put it simply, those layouts will be used to more precisely configure what data will be sent to a given service through one of the actions.

code

<string name="immersive_actions_add_relationship_done_card_primary_text">Nickname added</string>
<string name="immersive_actions_add_relationship_header">Add a nickname</string>
<string name="immersive_actions_no_selected_provider">No app selected</string>
<string name="immersive_actions_unknown_provider_short">\?</string>
<string name="immersive_actions_confirmation_card_canceled">Canceled.</string>
<string name="immersive_actions_confirmation_card_default">Here you go.</string>
<string name="immersive_actions_confirmation_card_done">Ok.</string>
<string name="immersive_actions_group_argument_label">Alert</string>
<string name="immersive_actions_search_error">Sorry, you are offline.</string>
<string name="immersive_actions_voice_delight_first_timeout">Sorry, didn't catch that.</string>
<string name="immersive_actions_voice_delight_second_timeout">No, I still didn't get that.</string>
<string name="immersive_actions_voice_delight_third_timeout">No, I still don't understand you.</string>
<string name="immersive_contact_disambiguation_header_label">%1$s...</string>

New layouts:

assistant_user_defined_action_editor_layout.xml

immersive_actions_card_argument_heading_content.xml
immersive_actions_card_argument_heading.xml
immersive_actions_card_confirmation_content.xml
immersive_actions_card_multiline_combined_content_large_argument.xml
immersive_actions_card_multiline_combined_content.xml
immersive_actions_confirmation_card.xml
immersive_actions_contact_disambiguation.xml
immersive_actions_control_buttons.xml
immersive_actions_disambiguation_content.xml
immersive_actions_disambiguation_item.xml
immersive_actions_done_blob.xml
immersive_actions_dropdown_arrow_action_card_material.xml
immersive_actions_editor_content.xml
immersive_actions_editor_labeled_footer.xml
immersive_actions_editor_small_labeled_footer.xml
immersive_actions_entity_disambiguation_view.xml
immersive_actions_generic_argument.xml
immersive_actions_group_argument_editor.xml
immersive_actions_group_argument_radio_button.xml
immersive_actions_header_editor.xml
immersive_actions_local_result_item_content.xml
immersive_actions_local_results_item_2.xml
immersive_actions_local_results_view.xml
immersive_actions_location_disambiguation_view.xml
immersive_actions_main_view.xml
immersive_actions_message_separator.xml
immersive_actions_person_argument_editor_2.xml
immersive_actions_person_editor.xml
immersive_actions_provider_disambiguation_view.xml
immersive_actions_punt_card.xml
immersive_actions_slider_settings_argument_editor.xml
immersive_actions_small_local_result_item_content.xml
immersive_actions_small_location_argument_editor.xml
immersive_actions_small_print.xml
immersive_actions_spinner_argument_content.xml
immersive_actions_string_argument_content.xml
immersive_actions_string_argument_editor.xml
immersive_actions_ui.xml
immersive_contact_detail_select_item.xml
immersive_disambiguation_sub_item_divider.xml
immersive_person_disambig_title.xml
immersive_person_select_item.xml
immersive_voice_delight_card_container.xml

So far, all of these things have been relevant to creating trigger phrases and configuring how the command actions, but what about the actions themselves? It's starting to look like actions will be made available through "services" added to the Google assistant. It's unlikely user-defined actions will be necessary to take advantage of services, but they will certainly allow for some more customization and streamlining activities we might use all the time.

<string name="assistant_settings_services_help_line">Link these services to get more out of your Google assistant.</string>
<string name="assistant_settings_services_link">Link service</string>

The implementation details for "services" are still unclear, but they're probably going to begin as services Google vets and adds to a whitelist. We've seen this before with Android TV, Android Auto, Google Glass, and Chromecast, among others. However, it only makes sense that Google will eventually open up an API so other services can be linked, as well.

Google Home Hardware Support

We all know part of the plan for Google Home is to begin some legitimate efforts at home automation. It goes without saying that some of these appliances will be registered with Google assistant on our phones and tablets. It appears the Nest Thermostat is leading the charge as the first device to get a unique icon all of its own. To go alongside it, there's a "general device" icon that every other piece of hardware will be sharing for now, at least until something suitable is designed for Chromecast, Android TV, Nest Protect, On Hub, and whatever other gadgets that will ultimately find support.

quantum_ic_general_device_grey600_24quantum_ic_nest_thermostat_grey600_24

Left: "general device." Right: Nest Thermostat.

Google suggestions

This one isn't as informative as it is somewhat amusing. Included in this update is a very long list of questions and commands Google could suggest to users. Most of the list includes examples that have been supported for years, like asking for the time and weather conditions in a particular city, and a few things like controlling the LED (i.e. flashlight) and camera are a bit more recent.

The queries start with fairly mundane topics, covering subjects like actor trivia and math questions, but they eventually change to show a little more humor. A few involve setting reminders and alarms for unusually specific times, some include some fairly quirky names, and there are quite a few references just for us geeks. Respect. There's even a sign that somebody on the development team may not be a loyal Android Police reader. Traitor!

Anyway, if you have a couple of minutes, skim through the list and you'll probably notice something you didn't realize was supported, or just get a chuckle from the various easter eggs buried near the end.

Suggestions

<string-array name="suggestions">
<item>Who is Roger Federer?</item>
<item>How old is Adam Sandler?</item>
<item>Where was Ashton Kutcher born?</item>
<item>Who is Tiger Woods married to?</item>
<item>Who is Uma Thurman's sister?</item>
<item>Who wrote Gone with the Wind?</item>
<item>Who invented the mobile phone?</item>
<item>When is the sunrise in South Loy?</item>
<item>What is the time zone in Rosaside?</item>
<item>What time is it in Brandtview?</item>
<item>What is the time at home?</item>
<item>What's the weather like?</item>
<item>Do I need a jacket for tomorrow?</item>
<item>What's the weather going to be like in West Cedrick this afternoon?</item>
<item>What's the temperature outside?</item>
<item>Is there a chance of rain today?</item>
<item>What's the Motorola stock price?</item>
<item>What's Volkswagen trending at?</item>
<item>What's 500 months in numbers?</item>
<item>Convert 507 miles to yards?</item>
<item>What's 569 rupees to dollars?</item>
<item>What's the tip for 198 dollars?</item>
<item>Square root of 7579?</item>
<item>What's 9271 divided by 6518?</item>
<item>What's 40 percent of 3293?</item>
<item>What's 40 percent of 5617 divided by 3976?</item>
<item>Open youtube.com</item>
<item>Open Slack</item>
<item>Increase brightness</item>
<item>Take a picture</item>
<item>Take a selfie</item>
<item>Turn on WiFi</item>
<item>Turn on flashlight</item>
<item>Record a video</item>
<item>Increase volume</item>
<item>Set the volume to 6</item>
<item>Set the volume to full</item>
<item>Mute the volume</item>
<item>Define nemo</item>
<item>What's the definition of open-source?</item>
<item>What's the meaning of pixel?</item>
<item>Set an alarm in 29 minutes</item>
<item>Set an alarm for 09:24 AM</item>
<item>Set a repeating alarm for 03:06 AM</item>
<item>Set an alarm for 09:21 PM labeled Pick kids from school</item>
<item>Set a repeating alarm at 12:59 PM for Saturday</item>
<item>Show me my alarms</item>
<item>When is my next alarm?</item>
<item>Wake me up at 03:22 AM everyday</item>
<item>New meeting</item>
<item>Schedule an event grandmas birthday tonight at 02:36 PM</item>
<item>What's my next appointment?</item>
<item>Show me the appointments for this afternoon</item>
<item>What does my day look like on Sunday?</item>
<item>Show me my bills</item>
<item>Where is my package?</item>
<item>Where's my hotel?</item>
<item>Show me restaurants near my hotel</item>
<item>Add eggs and oranges to my shopping list.</item>
<item>Make a note: feed the dog</item>
<item>Note to self: feed the dog</item>
<item>Find Monte Anderson's number</item>
<item>When is Calista Kunde's birthday?</item>
<item>Call Concepcion Abernathy</item>
<item>Call Bobbie Ondricka on speakerphone</item>
<item>Call the nearest gas station</item>
<item>Call McDonalds</item>
<item>Show me my messages</item>
<item>Text Delta Emard What are you doing</item>
<item>Send an email to my brother Hey, you didn't give me feedback on the document</item>
<item>Send a Whatsapp message to my father</item>
<item>Post to Facebook</item>
<item>Say I want to eat something in French?</item>
<item>Translate Can I have water to Chinese?</item>
<item>Add a reminder</item>
<item>Remind me to download the new Foo Fighters album at 11:42 AM</item>
<item>Remind me to drink more water next time i'm at the gym</item>
<item>Remind me to buy eggs at Wegmans</item>
<item>Remind me to buy wet wipes at pharmacy</item>
<item>Remind me to organize cables every Thursday</item>
<item>Map of Greenland</item>
<item>Show me nearest restaurants on map</item>
<item>Navigate to Hansbury by car</item>
<item>Navigate to my sister's place</item>
<item>How far is North Emilia from Mariettaport?</item>
<item>Walking directions to Tower Bridge</item>
<item>What are some attractions around here?</item>
<item>Show me popular museums in Africa</item>
<item>Where is Eifell Tower?</item>
<item>Is Big Ben open now?</item>
<item>When does Van Gogh Museum close?</item>
<item>Is Eifell Tower open on Thursday afternoon?</item>
<item>Distance from here to Tower Bridge</item>
<item>How far away is Cameroon?</item>
<item>How is Manchester United doing?</item>
<item>Results from Manchester City last game</item>
<item>When is the next Manchester City game</item>
<item>Did Tottenham Hotspur win the last game?</item>
<item>Flight AA 120</item>
<item>Flight status of AA 120</item>
<item>Has LH 210 landed?</item>
<item>When will AA 125 land?</item>
<item>Go to ABCNews</item>
<item>Browse androidauthority.com</item>
<item>When was Jupiter Ascending released?</item>
<item>Runtime of Inside Out?</item>
<item>Listen to TV</item>
<item>Who is the producer of Minions?</item>
<item>Who acted in Jurassic World?</item>
<item>Best movies of 2005</item>
<item>Best drama movies</item>
<item>Drama movies of 2002</item>
<item>Oscar winners of 2010</item>
<item>What are the best Anna Raadsveld movies</item>
<item>What movies are playing on Thursday?</item>
<item>Where is In the Heart of the Sea playing?</item>
<item>Do a barrel roll</item>
<item>What's the loneliest number?</item>
<item>Make me a sandwich</item>
<item>sudo Make me a sandwich</item>
<item>When am i?</item>
<item>Okay Jarvis</item>
<item>Who are you?</item>
<item>How much would could a woodchuck chuck if a woodchuck could chuck wood?</item>
<item>Beam me up Scotty</item>
<item>How can entropy be reversed?</item>
<item>What's Anna Raadsveld's bacon number</item>
<item>Tell me a joke</item>
<item>Up, up, down, down, left, right, left, right</item>
<item>Who's on first?</item>
<item>Go go gadget Dialer</item>
<item>Askew</item>
<item>Roll a dice</item>
<item>Flip a coin</item>
<item>Play some music</item>
<item>What's this song?</item>
<item>What song am i listening to?</item>
<item>Listen to my gym playlist</item>
<item>Next song</item>
<item>Pause song</item>
<item>Listen to pop</item>
<item>Play Lady Gaga</item>
<item>Play Love In Vain by Rolling Stones</item>
<item>Listen to the By the way album</item>
<item>Listen to AC/DC</item>
<item>Set timer for 20 minutes</item>
<item>Start countdown</item>
</string-array>

Download

The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.

Version: 6.3.33 beta