Czytaj. Jest to dostępna na urządzeniach z Androidem funkcja Asystenta Google, która umożliwia użytkownikom czytanie długich treści internetowych, takich jak artykuły z wiadomościami i posty na blogu. Użytkownicy mogą powiedzieć na przykład „OK Google, przeczytaj to”, aby aplikacja mogła na głos czytać treści internetowe, wyróżniać czytane słowa i przewijać stronę automatycznie. Aby dowiedzieć się więcej o tej funkcji, możesz też przeczytać posta o aktualizacjach usługi Read It.
Aplikacje na Androida z treściami internetowymi mogą obsługiwać czytanie, przesyłając informacje do Asystenta za pomocą metody onProvideAssistContent()
.
Pomaga to zachować strukturę danych udostępnianych Asystentowi. Użytkownicy otrzymujący udostępnione treści w aplikacji mogą dzięki temu mieć precyzyjny link lub otrzymywać treści bezpośrednio zamiast w formie tekstu lub zrzutu ekranu.
Zaimplementuj onProvideAssistContent()
w przypadku wszystkich treści internetowych i tych, które można udostępniać w aplikacji entity
.
Przesyłanie treści Asystentowi
Aby aplikacja mogła odczytać treść, musi ona dostarczyć Asystentowi informacje o treściach takie jak identyfikator URI internetowy oraz podstawowe informacje o kontekście. Asystent może pobrać treść i odczytać na głos użytkownikowi.
W przypadku aplikacji na Androida, które już implementują treści internetowe za pomocą komponentów WebView lub kart niestandardowych Chrome, jako punktu wyjścia użyj tych samych internetowych identyfikatorów URI dla funkcji Odczytaj.
W przypadku połączenia funkcji „Odczytaj” z wbudowanymi intencjami wystarczy zaimplementować onProvideAssistContent()
tylko w przypadku ostatniej aktywności w ramach przepływu zadań użytkownika po jej wywołaniu.
Jeśli np. aplikacja wyświetla artykuły informacyjne, zaimplementuj funkcję onProvideAssistContent()
na ostatnim ekranie z artykułem. Nie musisz jej implementować na żadnym ekranie, który jest w toku ani na ekranie podglądu.
Podaj internetowy identyfikator URI treści w polu uri
w AssistContent
.
Podaj informacje kontekstowe w postaci obiektu JSON-LD przy użyciu słownika schema.org w polu structuredData
.
Ten fragment kodu pokazuje przykład udostępniania treści Asystentowi:
Kotlin
override fun onProvideAssistContent(outContent: AssistContent) { super.onProvideAssistContent(outContent) // Set the web URI for content to be read from a // WebView, Chrome Custom Tab, or other source val urlString = url.toString() outContent.setWebUri(Uri.parse(urlString)) // Create JSON-LD object based on schema.org structured data val structuredData = JSONObject() .put("@type", "Article") .put("name", "ExampleName of blog post") .put("url", outContent.getWebUri()) .toString() outContent.setStructuredData(structuredData) }
Java
@Override public void onProvideAssistContent(AssistContent outContent) { // Set the web URI for content to be read from a // WebView, Chrome Custom Tab, or other source String urlString = url.toString(); outContent.setWebUri(Uri.parse(urlString)); try { // Create JSON-LD object based on schema.org structured data String structuredData = new JSONObject() .put("@type", "Article") .put("name", "ExampleName of blog post") .put("url", outContent.getWebUri()) .toString(); outContent.setStructuredData(structuredData); } catch (JSONException ex) { // Handle exception Log.e(TAG, ex.getMessage()); } super.onProvideAssistContent(outContent); }
Implementując onProvideAssistContent()
, podaj jak najwięcej danych o każdym elemencie entity
. Te pola są wymagane:
@type
.name
.url
(wymagany tylko wtedy, gdy treść jest adresowana za pomocą adresu URL)
Więcej informacji o korzystaniu z onProvideAssistContent()
znajdziesz w przewodniku Optymalizowanie treści kontekstowych w Asystencie w dokumentacji dla programistów aplikacji na Androida.