LightBlog

mardi 11 avril 2017

Google App 7.0.4 Prepares for Multi-User Hotword Detection, Rating Services, and References a Device Called “Bisto”

Google has recently started releasing beta updates for some of their more popular applications; the Google App being one of them. Today, a new beta version of the Google App, version 7.0.4, began rolling out to some users. This being a major version bump, we decided to install the app to see if there’s anything new, but we haven’t found anything too interesting yet. However, an APK teardown of the app reveals a few interesting tidbits: the Google App is preparing for multi-user hotword detection, rating various Google Home services, and also makes reference to an unknown device type known as “Bisto.”

Although an APK teardown can often predict features that may arrive in a future update of an application, it is possible that any of the features we mention here may not make it in a future release. This is because these features are currently unimplemented in the live build and may be pulled at any time by Google in a future build.


Google App v7.0.4 Teardown

Multi-User Hotword Detection

One of the drawbacks with the Google Assistant is its inability to be used by multiple users. If you own a shared device, this means that the Google App can only be trained to one user’s voice rather than, say, every individual family member. Looking at a few new strings within the Google App, it appears that Google may be changing that:

Hotword Enrollment Multi-User

<string name="hotword_enrollment_multi_user_enroll_listening_first">Say \"%1$s\"</string>
<string name="hotword_enrollment_multi_user_enroll_listening_second">Now say \"%1$s\"</string>
<string name="hotword_enrollment_multi_user_styled_hotword1">&lt;font face=sans-serif-black>OK&lt;/font> Google</string>
<string name="hotword_enrollment_multi_user_styled_hotword2">&lt;font face=sans-serif-black>Hey&lt;/font> Google</string>

Furthermore, we can see that there will be a new activity screen that will walk users through how to set up a multi-user hotword enrollment process.

hotword_enrollment_google_home_summary_screen.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://ift.tt/nIICcg">
<TextView android:id="@id/hotword_enrollment_summary_text" android:layout_marginTop="@dimen/hotword_enrollment_multi_user_summary_body_margin" android:layout_marginBottom="@dimen/hotword_enrollment_multi_user_summary_body_margin" android:text="@string/hotword_enrollment_summary_text_screen_on_no_trusted_voice" style="@style/HotwordEnrollmentGlifBodyRegularText" />
<LinearLayout android:orientation="vertical" android:id="@id/hotword_enrollment_summary_google_home_use_example" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hotword_enrollment_summary_usage_sample_title" />
<TextView android:textStyle="bold" android:textColor="@color/hotword_enrollment_main_text" android:text="@string/hotword_enrollment_summary_usage_example_first" style="@style/MultiUserHotwordEnrollmentBulletLine" />
<TextView android:textStyle="bold" android:textColor="@color/hotword_enrollment_main_text" android:text="@string/hotword_enrollment_summary_usage_example_second" style="@style/MultiUserHotwordEnrollmentBulletLine" />
<TextView android:textStyle="bold" android:textColor="@color/hotword_enrollment_main_text" android:text="@string/hotword_enrollment_summary_usage_example_third" style="@style/MultiUserHotwordEnrollmentBulletLine" />
</LinearLayout>
<Space android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_weight="1.0" />
<TextView android:linksClickable="true" android:id="@id/hotword_enrollment_summary_footer" android:layout_marginTop="@dimen/hotword_enrollment_inner_vertical_small_padding" android:text="@string/hotword_enrollment_summary_footer_text" style="@style/HotwordEnrollmentBodyLegalText" />
</LinearLayout>

At least for now, it seems that the Google App may allow for two users to train the Assistant to recognize their voice. While it’s still not as much as we would hope, being able to teach Assistant to distinguish between two voices is better than just one. Hopefully they extend this to the Google Home as well, where such a feature would be far more useful.

Rating Services

A more minor upcoming change we’ve found is the ability to rate services. If you own a Google Home and open up the Google Home app, there are tons of services there you can take advantage of. One of our favorites is the AutoVoice service, which allows you to make your own highly customizable voice interactions to do whatever you want through Tasker.

Previously, these services were just kind of “there” with no way for you to really interact with them. Now, it appears that you may be able to rate these services.

Rating Services

<string name="agent_directory_a11y_agent_avg_rating">%1$s star rating</string>
<string name="agent_directory_a11y_back_button">Back</string>
<string name="agent_directory_a11y_rate_service_five_stars_button">Five stars</string>
<string name="agent_directory_a11y_rate_service_four_stars_button">Four stars</string>
<string name="agent_directory_a11y_rate_service_one_star_button">One star</string>
<string name="agent_directory_a11y_rate_service_subtitle">Rate your experience with %1$s on Google Assistant</string>
<string name="agent_directory_a11y_rate_service_three_stars_button">Three stars</string>
<string name="agent_directory_a11y_rate_service_title_after_rating">Your rating</string>
<string name="agent_directory_a11y_rate_service_title_before_rating">Rate %1$s</string>
<string name="agent_directory_a11y_rate_service_two_stars_button">Two stars</string>
<string name="agent_directory_account">Account status</string>
<string name="agent_directory_agent_rating_menu_delete">Delete</string>
<string name="agent_directory_agent_rating_menu_edit">Edit</string>
<string name="agent_directory_ask_prompt">Ask your Assistant</string>
<string name="agent_directory_category">Category</string>
<string name="agent_directory_category_list_header">Categories</string>
<string name="agent_directory_developer_email">Developer e-mail</string>
<string name="agent_directory_feedback_send">Send</string>
<string name="agent_directory_handle">Handle</string>
<string name="agent_directory_link">Link</string>
<string name="agent_directory_link_text">Link Account</string>
<string name="agent_directory_linked">Account linked</string>
<string name="agent_directory_more">Read more</string>
<string name="agent_directory_my_services_header">My Services</string>
<string name="agent_directory_privacy_policy"><u>Privacy policy</u></string>
<string name="agent_directory_rate_service_prompt">Rating</string>
<string name="agent_directory_ready_to_use_text">Ready to Use</string>
<string name="agent_directory_report">Report service</string>
<string name="agent_directory_report_agent_text"><u>Report service</u></string>
<string name="agent_directory_reset_service"><u>Reset service</u></string>
<string name="agent_directory_see_all_text">See all</string>
<string name="agent_directory_settings_manage">Set Up</string>
<string name="agent_directory_share">Share</string>
<string name="agent_directory_shortcuts_create">CREATE</string>
<string name="agent_directory_shortcuts_subtitle">Customize your shortcuts for %1$s</string>
<string name="agent_directory_shortcuts_title">Your %1$s shortcuts</string>
<string name="agent_directory_sign_in_prompt">Signing in to %1$s</string>
<string name="agent_directory_terms_of_service"><u>Terms of service</u></string>
<string name="agent_directory_try_it_now_text">Try It</string>
<string name="agent_directory_unlink_text">Unlink Account</string>
<string name="agent_directory_unlinked">Account not linked</string>
<string name="agent_feedback_from_header_text">From</string>

There’s also a new “rating widget” activity, though we’re not entirely sure why this needs to exist.

rating_widget.xml

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.apps.gsa.assistant.settings.services.hq.agentdirectory.RatingWidget android:layout_width="wrap_content" android:layout_height="fill_parent"
xmlns:android="http://ift.tt/nIICcg">
<TextView android:textColor="@color/quantum_grey600" android:id="@id/agent_directory_agent_rate_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/agent_directory_details_general_spacing" android:layout_marginTop="24.0dip" android:layout_marginRight="@dimen/agent_directory_details_general_spacing" android:text="@string/agent_directory_rate_service_prompt" android:layout_alignParentLeft="true" android:fontFamily="sans-serif-medium" />
<TextView android:textSize="14.0dip" android:textStyle="bold" android:textColor="@color/quantum_googblue" android:gravity="center" android:id="@id/agent_directory_agent_rate_submit" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="@dimen/agent_directory_details_general_spacing" android:text="@string/assistant_settings_review_rating_submit" android:layout_alignTop="@id/agent_directory_agent_rate_title" android:layout_alignParentRight="true" android:textAllCaps="true" android:layout_marginEnd="@dimen/agent_directory_details_general_spacing" android:layout_alignParentEnd="true" />
<ImageButton android:id="@id/agent_directory_agent_rating_menu" android:background="@android:color/transparent" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="@dimen/agent_directory_details_general_spacing" android:src="@drawable/quantum_ic_more_vert_grey600_24" android:layout_alignTop="@id/agent_directory_agent_rate_title" android:layout_alignParentRight="true" android:layout_marginEnd="@dimen/agent_directory_details_general_spacing" android:layout_alignParentEnd="true" />
<TextView android:id="@id/agent_directory_agent_rate_subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/agent_directory_details_general_spacing" android:layout_marginTop="16.0dip" android:layout_marginRight="@dimen/agent_directory_details_general_spacing" android:layout_below="@id/agent_directory_agent_rate_title" android:layout_alignParentLeft="true" />
<LinearLayout android:orientation="horizontal" android:id="@id/agent_directory_rating_stars" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="@dimen/agent_directory_details_general_spacing" android:layout_marginRight="@dimen/agent_directory_details_general_spacing" android:layout_below="@id/agent_directory_agent_rate_subtitle">
<ImageButton android:background="@android:color/transparent" android:padding="@dimen/agent_directory_rating_star_button_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/quantum_ic_star_border_grey600_24" android:contentDescription="@string/agent_directory_a11y_rate_service_one_star_button" />
<ImageButton android:background="@android:color/transparent" android:padding="@dimen/agent_directory_rating_star_button_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/quantum_ic_star_border_grey600_24" android:contentDescription="@string/agent_directory_a11y_rate_service_two_stars_button" />
<ImageButton android:background="@android:color/transparent" android:padding="@dimen/agent_directory_rating_star_button_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/quantum_ic_star_border_grey600_24" android:contentDescription="@string/agent_directory_a11y_rate_service_three_stars_button" />
<ImageButton android:background="@android:color/transparent" android:padding="@dimen/agent_directory_rating_star_button_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/quantum_ic_star_border_grey600_24" android:contentDescription="@string/agent_directory_a11y_rate_service_four_stars_button" />
<ImageButton android:background="@android:color/transparent" android:padding="@dimen/agent_directory_rating_star_button_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/quantum_ic_star_border_grey600_24" android:scaleType="fitXY" android:contentDescription="@string/agent_directory_a11y_rate_service_five_stars_button" />
</LinearLayout>
<View android:background="@color/quantum_grey300" android:layout_width="fill_parent" android:layout_height="1.0dip" android:layout_marginTop="24.0dip" android:layout_below="@id/agent_directory_rating_stars" />
</com.google.android.apps.gsa.assistant.settings.services.hq.agentdirectory.RatingWidget>

“Bisto”

Finally, there’s something within the teardown that we are really not sure what to make of. There is a reference to a new device type known as “Bisto.” We’ve done some quick searches through Google, AOSP, and have asked a few of our developer friends, and none of these have turned up anything substantial. The “Bisto” device type shows up alongside other known devices such as an Android TV, Google Home, Pixel, or Android Wear, so it would seem that this is some new category.

Device Type Bisto

<string name="assistant_settings_device_type_android_tv">Android TV</string>
<string name="assistant_settings_device_type_bisto">Bisto</string>
<string name="assistant_settings_device_type_google_home">Google Home</string>
<string name="assistant_settings_device_type_nexus">Pixel</string>
<string name="assistant_settings_device_type_phone">Phone</string>
<string name="assistant_settings_device_type_wear">Android Wear</string>

There is another place that refers to Bisto, however. These two strings below make note that with the Bisto device type, you can listen to notifications through your headphones. We’re not really sure what this entails, and we’ve tried plugging in some headphones to get the Google App to read notifications, but it wasn’t working. This is probably because our device isn’t recognized as a “Bisto”, whatever that may be.

<string name="bisto_device_notifications_pref_summary">Notifications will be read aloud inside your headphones</string>
<string name="bisto_device_notifications_pref_title">Spoken notifications</string>

There’s also a preference screen for this new “Bisto” device, for what it’s worth.

assistant_device_id_bisto_settings.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://ift.tt/nIICcg">
<com.google.android.apps.gsa.assistant.settings.shared.PreferenceHolder android:key="@string/assistant_device_id_group_holder">
<com.google.android.apps.gsa.assistant.settings.shared.MainScreenPreferenceCategory android:title="@string/assistant_settings_device_id_category" android:key="@string/assistant_device_id_bisto_preference_category">
<com.google.android.apps.gsa.assistant.settings.shared.MainScreenDropDownPreference android:persistent="false" android:key="bistoDeviceId" />
<SwitchPreferenceCompat android:persistent="false" android:title="@string/bisto_device_notifications_pref_title" android:key="bistoNotifications" android:summary="@string/bisto_device_notifications_pref_summary" />
</com.google.android.apps.gsa.assistant.settings.shared.MainScreenPreferenceCategory>
</com.google.android.apps.gsa.assistant.settings.shared.PreferenceHolder>
</PreferenceScreen>

While we are unsure what this “Bisto” is, we’re excited to find out if it’s some new product category that Google is working on, but that they just haven’t publicly announced yet. I wouldn’t get your hopes up, though, because this could mean absolutely nothing either.


I’ll continue digging around and update this article if I find anything interesting in the live build, or through an APK teardown. If you are looking for this latest release of the Google App, you can download it right now over at APKMirror.



from xda-developers http://ift.tt/2ow5pmj
via IFTTT

Aucun commentaire:

Enregistrer un commentaire