1. Genel Bakış
İlk Uygulama İşlemleri codelab'inde, Health and Fitness BII kategorisindeki yerleşik amaçları (BII) uygulayarak Google Asistan'ı örnek bir fitness uygulamasına nasıl genişleteceğinizi öğrendiniz.
Uygulama İşlemleri, kullanıcıların "Ok Google, ExampleApp'te çalıştırma başlat" gibi sorular sorarak doğrudan Asistan'dan belirli uygulama özelliklerini başlatmalarına olanak tanır. Asistan, uygulamaları başlatmanın yanı sıra uygun BBI isteklerini yerine getirmek için kullanıcıya etkileşimli bir Android widget'ı gösterebilir.
Neler oluşturacaksınız?
Bu codelab'de, Asistan'ın kullanıcı isteklerini yerine getirmek için Android widget'larını nasıl döndüreceğinizi öğreneceksiniz. Ayrıca şunları öğreneceksiniz:
- Widget'ları kişiselleştirmek için kullanılan kullanıcı BII parametreleri.
- Widget'larınız için Asistan'da metin okuma (TTS) tanıtımları sağlayın.
- Hangi BII'lerin desteklenmesi için widget'ı sağlanması gerektiğini belirlemek için Yerleşik amaç referansı kullanın.
Ön koşullar
Devam etmeden önce, geliştirme ortamınızın Uygulama İşlemleri geliştirmek için hazır olduğundan emin olun. Şunları içermelidir:
- Git'in yüklü olduğu, kabuk komutlarının çalıştırılacağı bir terminal.
- Android Studio'nun en son kararlı sürümü.
- İnternet erişimi olan fiziksel veya sanal bir Android cihaz.
- Android Studio, Google uygulaması ve Google Asistan uygulamasında oturum açmış bir Google Hesabı.
Fiziksel bir cihaz kullanıyorsanız bu cihazı yerel geliştirme makinenize bağlayın.
2. İşleyiş şeklini anlayın
Google Asistan, kullanıcıların isteğini okumak ve Asistan'ın yerleşik amacıyla (BII) eşleştirmek için doğal dil anlama (NLU) özelliğini kullanır. Asistan daha sonra amacı, uygulamanızda bu amaç için kaydettiğiniz özellikle (BII'yi uygulayan) eşleştirir. Son olarak Asistan, uygulamanızın özellikteki ayrıntılarla oluşturduğu Android widget'ını göstererek kullanıcının isteğini yerine getirir.
Bu codelab'de, GET_EXERCISE_OBSERVATION
BII için destek kaydeden bir özellik tanımlayacaksınız. Bu özellikte Asistan'a, bu BII ile ilgili istekleri yerine getirmek amacıyla FitActions
widget sınıfına bir Android intent oluşturması için talimat verirsiniz. Asistan'ın kullanıcıya göstereceği kişiselleştirilmiş bir widget ve Asistan'ın duyuracağı bir TTS tanıtımı oluşturmak için bu sınıfı güncellersiniz.
Aşağıdaki şemada bu akış gösterilmektedir:
FitActions widget'ı
FitActions örnek uygulaması, kullanıcıların ana ekranlarına ekleyebileceği bir antrenman bilgileri widget'ı içerir. Bu widget, GET_EXERCISE_OBSERVATION
BII'yi tetikleyen kullanıcı sorgularını yerine getirmek için mükemmel bir adaydır.
Widget'ın işleyiş şekli
Bir kullanıcı ana ekrana bir widget eklediğinde, widget, cihaza Yayın Alıcısı'na ping gönderir. Bu hizmet, uygulamanın AndroidManifest.xml
kaynağındaki widget'ın alıcı tanımından widget hakkında bilgi alır. Bu bilgileri kullanarak widget'ı temsil eden bir RemoteViews
nesnesi oluşturur.
Örnek uygulama, StatsWidgetProvider
sınıfına karşılık gelen widgets.StatsWidgetProvider
alıcısını tanımlar:
<!-- app/src/main/AndroidManifest.xml -->
<receiver
android:name=".widgets.StatsWidgetProvider"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/stats_widget" />
</receiver>
StatsWidgetProvider
sınıfı (StatsWidgetProvider.kt
), StatsWidget
nesne oluşturma akışını yönetir. Şirket şu sorumlulukları yerine getirir:
- Widget örnekleri oluşturma ve bunları uygulama veritabanındaki egzersiz verileriyle doldurma.
- Antrenman verileri okunabilirlik için
formatDataAndSetWidget()
ile biçimlendiriliyor. - Antrenman verileri kullanılamıyorsa
setNoActivityDataWidget()
kullanılarak varsayılan değerler sağlanıyor.
Asistan desteği ekleme
Bu codelab'de, örnek uygulamayı Uygulama İşlemleri işlevini işleyecek şekilde güncelleyeceksiniz. Bu değişiklikler şunlardır:
GET_EXERCISE_OBSERVATION
BII özelliğini,StatsWidget
nesnesinin bir örneğini döndürecek şekilde yapılandırma.StatsWidget
sınıfı, aşağıdaki gibi uygulama işlemleri özelliklerini kullanacak şekilde güncelleniyor:- BII parametrelerinden yararlanarak kullanıcılara "Ok Google, exampleApp'te koşu istatistiklerimi göster" gibi sorular sorarak belirli antrenman istatistiklerini görüntüleyebilirler.
- TTS giriş dizeleri sağlama.
- Kullanıcı sorgusunun antrenman türü parametresi içermediği durumlar gibi özel durumları yönetme.
3. Geliştirme ortamınızı hazırlama
Temel dosyalarınızı indirin
Örnek uygulamanın GitHub deposunu klonlamak için şu komutu çalıştırın:
git clone --branch start-widget-codelab https://github.com/actions-on-google/appactions-fitness-kotlin.git
Kod deposunu klonladıktan sonra, Android Studio'da açmak için şu adımları uygulayın:
- Android Studio'ya hoş geldiniz iletişim kutusunda Projeyi içe aktar'ı tıklayın.
- Depoyu klonladığınız klasörü bulup seçin.
Tamamlanmış codelab'i temsil eden bir uygulama sürümünü görmek için --branch master
işaretini kullanarak örnek uygulama deposunu klonlayın.
Android uygulama kimliğini güncelleme
Uygulamanın uygulama kimliğini güncellemek, test cihazınızda uygulamayı benzersiz bir şekilde tanımlar ve "Yinelenen paket adı"nı önler hatası oluşur. Uygulama kimliğini güncellemek için app/build.gradle
dosyasını açın:
android {
...
defaultConfig {
applicationId "com.MYUNIQUENAME.android.fitactions"
...
}
}
Değiştir: "MYUNIQUENAME" applicationId
alanına bunu benzersiz bir şekilde ekleyebilirsiniz.
Test eklentisini yükleyin
Google Asistan eklentisi, Uygulama İşlemlerinizi bir test cihazında test etmenize olanak tanır. Bu uygulama, Android cihazınızdaki Google uygulaması üzerinden Asistan'a bilgi göndererek çalışır. Eklentiye henüz sahip değilseniz aşağıdaki adımları uygulayarak yükleyin:
- Dosya > Ayarlar (MacOS'te Android Studio > Tercihler).
- Eklentiler bölümünde Marketplace'e gidin ve "Google Asistan"ı arayın. Test aracını manuel olarak da indirip yükleyebilirsiniz.
- Aracı yükleyin ve Android Studio'yu yeniden başlatın.
Uygulamayı cihazınızda test etme
Uygulamada daha fazla değişiklik yapmadan önce, örnek uygulamanın neler yapabileceği hakkında fikir edinmeniz yardımcı olacaktır.
Uygulamayı test cihazınızda çalıştırın:
- Android Studio'da fiziksel veya sanal cihazınızı seçip Çalıştır > Uygulamayı çalıştırın veya araç çubuğunda Çalıştır'ı tıklayın.
- Asistan'ı kurmak ve çalıştığını doğrulamak için Ana Sayfa düğmesine uzun basın. Henüz açmadıysanız cihazınızda Asistan'da oturum açmanız gerekir.
Android sanal cihazlar hakkında daha fazla bilgi için Sanal cihazları oluşturma ve yönetme başlıklı makaleyi inceleyin.
Özelliklerini görmek için uygulamayı kısaca keşfedin. Uygulama 10 egzersiz aktivitesini önceden doldurur ve bu bilgileri ilk görünümde gösterir.
Mevcut widget'ı deneyin
- Ana sayfa düğmesine dokunarak test cihazınızın ana ekranına gidin.
- Ana ekrandaki boş bir alana uzun basın ve Widget'lar seçeneğini belirleyin.
- Widget listesinde aşağı kaydırarak FitActions'a gidin.
- FitActions simgesine uzun basın ve widget'ını ana ekrana yerleştirin.
4. Uygulama İşlemini ekleme
Bu adımda GET_EXERCISE_OBSERVATION
BII özelliğini eklersiniz. Bunu, shortcuts.xml
uygulamasına yeni bir capability
öğesi ekleyerek yaparsınız. Bu özellik; özelliğin nasıl tetiklendiğini, BII parametrelerinin nasıl kullanıldığını ve isteği yerine getirmek için hangi Android amaçlarının çağrılacağını belirtir.
shortcuts.xml
kimlikli örnek proje kaynağına şu yapılandırmayla yeni bircapability
öğesi ekleyin:<!-- fitnessactions/app/src/main/res/xml/shortcuts.xml --> <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION"> <app-widget android:identifier="GET_EXERCISE_OBSERVATION" android:targetClass="com.devrel.android.fitactions.widgets.StatsWidgetProvider" android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"> <parameter android:name="exerciseObservation.aboutExercise.name" android:key="aboutExerciseName" android:required="true"> </parameter> <extra android:name="hasTts" android:value="true"/> </app-widget> <!-- Add Fallback Intent--> </capability>
PUT_YOUR_APPLICATION_ID_HERE
android:targetPackage
değerini benzersizapplicationId
değerinizle değiştirin.
Bu özellik, GET_EXERCISE_OBSERVATION
BII'yi app-widget
amacı ile eşler. Böylece BII tetiklendiğinde, widget örneklenir ve kullanıcıya gösterilir.
Asistan, widget'ı tetiklemeden önce kullanıcı sorgusundan desteklenen BII parametrelerini ayıklar. Bu codelab'de, kullanıcının istediği egzersiz türünü temsil eden exerciseObservation.aboutExercise.name
BII parametresi gerekir. Uygulama üç egzersiz türünü destekler: "koşu", "yürüyüş" ve "bisiklet". Asistan'ı desteklenen bu değerler hakkında bilgilendirmek için bir satır içi envanter sağlarsınız.
- Bu envanter öğelerini tanımlamak için
GET_EXERCISE_OBSERVATION
özelliğinin üzerindeki bu yapılandırmayıshortcuts.xml
öğesine ekleyin:<!-- shortcuts.xml --> <!-- shortcuts are bound to the GET_EXERCISE_OBSERVATION capability and represent the types of exercises supported by the app. --> <shortcut android:shortcutId="running" android:shortcutShortLabel="@string/activity_running"> <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION"> <parameter-binding android:key="exerciseObservation.aboutExercise.name" android:value="@array/runningSynonyms"/> </capability-binding> </shortcut> <shortcut android:shortcutId="walking" android:shortcutShortLabel="@string/activity_walking"> <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION"> <parameter-binding android:key="exerciseObservation.aboutExercise.name" android:value="@array/walkingSynonyms"/> </capability-binding> </shortcut> <shortcut android:shortcutId="cycling" android:shortcutShortLabel="@string/activity_cycling"> <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION"> <parameter-binding android:key="exerciseObservation.aboutExercise.name" android:value="@array/cyclingSynonyms"/> </capability-binding> </shortcut> <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION"> <!-- ... --> </capability>
Yedek intent ekle
Yedek amaçları, sorguda özelliğin gerektirdiği parametrelerin eksik olması nedeniyle kullanıcı sorgusunun yerine getirilemediği durumları ele alır. GET_EXERCISE_OBSERVATION
özelliği, android:required="true"
özelliğiyle belirtilen exerciseObservation.aboutExercise.name
parametresini gerektirir. Bu durumlarda Asistan, sorguda hiçbir parametre sağlanmamış olsa bile isteğin başarılı olabilmesi için bir yedek intent tanımlamanızı gerektirir.
shortcuts.xml
ürününde, şu yapılandırmayı kullanarakGET_EXERCISE_OBSERVATION
özelliğine bir yedek intent ekleyin:<!-- shortcuts.xml --> <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION"> <app-widget> <!-- ... --> </app-widget> <!-- Fallback intent with no parameters needed to successfully execute.--> <intent android:identifier="GET_EXERCISE_OBSERVATION_FALLBACK" android:action="android.intent.action.VIEW" android:targetClass="com.devrel.android.fitactions.widgets.StatsWidgetProvider"> </intent> </capability>
Bu örnek yapılandırmada yedek karşılama, Extra
verilerinde parametre olmayan bir Android niyetidir.
5. Asistan için widget'ı etkinleştirin
GET_EXERCISE_OBSERVATION
özelliği kullanıma sunulduktan sonra widget sınıfını, Uygulama İşlemleri sesli çağrısını destekleyecek şekilde güncelleyin.
Widget'lar Uzantı kitaplığını ekleme
Uygulama İşlemleri Widget'lar Uzantı kitaplığı, widget'larınızı sesli Asistan deneyimleri için geliştirir. Özellikle, widget'larınız için özel bir TTS girişi sağlamanıza olanak tanır.
- Widget'lar Uzantısı kitaplığı bağımlılığını örnek uygulama
/app/build.gradle
kaynağına ekleyin:
Android Studio'da görünen uyarı kutusunda Şimdi Senkronize Et'i tıklayın. Her// app/build.gradle dependencies { //... implementation "com.google.assistant.appactions:widgets:0.0.1" }
build.gradle
değişiklikten sonra senkronizasyon yapmak, uygulamayı geliştirirken hatalardan kaçınmanıza yardımcı olur.
Widget hizmetini ekleyin
Hizmet, arka planda uzun süreli işlemler yapabilen bir uygulama bileşenidir. Uygulamanızın widget isteklerini işlemek için bir hizmet sağlaması gerekir.
- Şu yapılandırmayla örnek uygulamanın
AndroidManifest.xml
kaynağına bir hizmet ekleyin:<!-- AndroidManifest.xml --> <service android:name=".widgets.StatsWidgetProvider" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.google.assistant.appactions.widgets.PIN_APP_WIDGET" /> </intent-filter> </service>
Widget sipariş karşılamayı tetikleyen sesli sorgular sırasında Asistan, uygulamaya istek göndermek için bu hizmeti kullanır. Hizmet, isteği BII verileriyle birlikte alır. Hizmet, bu verileri kullanarak Asistan'da RemoteView
widget nesnesi oluşturur.
Widget sınıfını güncelleme
Uygulamanız artık GET_EXERCISE_OBSERVATION
özellik isteklerini widget sınıfınıza yönlendirecek şekilde yapılandırıldı. Ardından, BII parametre değerlerini kullanarak kullanıcı isteğine göre kişiselleştirilmiş bir widget örneği oluşturmak için StatsWidget.kt
sınıfını güncelleyin.
StatsWidget.kt
sınıfını açın ve Uygulama İşlemleri Widget Uzantısı kitaplığını içe aktarın:// StatsWidget.kt // ... Other import statements import com.google.assistant.appactions.widgets.AppActionsWidgetExtension
- Widget'ı doldurması gereken bilgileri belirlerken kullanacağınız şu gizli değişkenleri ekleyin:
// StatsWidget.kt private val hasBii: Boolean private val isFallbackIntent: Boolean private val aboutExerciseName: String private val exerciseType: FitActivity.Type
- Sınıfın Asistan'dan iletilen widget seçenekleri verilerini kullanmasına izin vermek için
init
işlevini ekleyin:// StatsWidget.kt init { val optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId) val bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII) hasBii = !bii.isNullOrBlank() val params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS) if (params != null) { isFallbackIntent = params.isEmpty if (isFallbackIntent) { aboutExerciseName = context.resources.getString(R.string.activity_unknown) } else { aboutExerciseName = params.get("aboutExerciseName") as String } } else { isFallbackIntent = false aboutExerciseName = context.resources.getString(R.string.activity_unknown) } exerciseType = FitActivity.Type.find(aboutExerciseName) }
Bu güncellemelerin, StatsWidget.kt
sınıfının GET_EXERCISE_OBSERVATION
özelliği tarafından oluşturulan Android amaçlarına yanıt vermesini nasıl sağladığını inceleyelim:
optionsBundle
= Paket- Paketler; süreç sınırlarının ötesinde, amaca sahip etkinlikler arasında ve yapılandırma değişiklikleri genelinde geçici durumu depolamak için kullanılması amaçlanan nesnelerdir. Asistan, yapılandırma verilerini widget'a aktarmak için
Bundle
nesneleri kullanır.
- Paketler; süreç sınırlarının ötesinde, amaca sahip etkinlikler arasında ve yapılandırma değişiklikleri genelinde geçici durumu depolamak için kullanılması amaçlanan nesnelerdir. Asistan, yapılandırma verilerini widget'a aktarmak için
bii
=actions.intent.GET_EXERCISE_OBSERVATION
- BII'nin adına,
AppActionsWidgetExtension
kullanılarak Paket'ten ulaşabilirsiniz.
- BII'nin adına,
hasBii
=true
- BII olup olmadığını kontrol eder.
params
=Bundle[{aboutExerciseName=running}]
- Uygulama İşlemleri tarafından oluşturulan özel bir Paket,
Bundle
widget seçeneklerinin içinde iç içe yerleştirilmiştir. BII anahtar/değer çiftlerini içerir. Bu durumda,running
değeri "Ok Google, exampleApp'te çalışan istatistiklerimi göster" örnek sorgudan çıkarılmıştır.
- Uygulama İşlemleri tarafından oluşturulan özel bir Paket,
isFallbackIntent
=false
Extras
amacında gerekli BII parametrelerinin olup olmadığını kontrol eder.
aboutExerciseName
=running
aboutExerciseName
için intentExtras
değerini alır.
exerciseType
=RUNNING
- İlgili veritabanı türü nesnesini aramak için
aboutExerciseName
yöntemini kullanır.
- İlgili veritabanı türü nesnesini aramak için
StatsWidget
sınıfı artık gelen Uygulama İşlemleri Android amaç verilerini işleyebildiğine göre widget'ın bir Uygulama İşlemi tarafından tetiklenip tetiklenmediğini kontrol etmek için widget oluşturma akış mantığını güncelleyin.
StatsWidget.kt
içindeupdateAppWidget()
işlevini şu kodla değiştirin:// StatsWidget.kt fun updateAppWidget() { /** * Checks for App Actions BII invocation and if BII parameter data is present. * If parameter data is missing, use data from last exercise recorded to the * fitness tracking database. */ if (hasBii && !isFallbackIntent) { observeAndUpdateRequestedExercise() } else observeAndUpdateLastExercise() }
Önceki kod, observeAndUpdateRequestedExercise
adlı yeni bir işleve başvuruda bulunuyor. Bu işlev, Uygulama İşlemleri Android amacı tarafından iletilen exerciseType
parametresi verilerini kullanarak widget verileri oluşturur.
- Şu kodla
observeAndUpdateRequestedExercise
işlevini ekleyin:// StatsWidget.kt /** * Create and observe the last exerciseType activity LiveData. */ private fun observeAndUpdateRequestedExercise() { val activityData = repository.getLastActivities(1, exerciseType) activityData.observeOnce { activitiesStat -> if (activitiesStat.isNotEmpty()) { formatDataAndSetWidget(activitiesStat[0]) updateWidget() } else { setNoActivityDataWidget() updateWidget() } } }
Önceki kodda, uygulamanın yerel veritabanından fitness verilerini almak için uygulamada bulunan mevcut bir depo sınıfını kullanın. Bu sınıf, veritabanına erişimi basitleştiren bir API sağlar. Depo, veritabanında sorgu yürütürken bir LiveData nesnesini ortaya çıkararak çalışır. Kodunuzda bu LiveData
, en son fitness aktivitesini almak için gözlemlenir.
TTS'yi etkinleştir
Asistan'ın widget'ınızı görüntülerken duyuru yapması için bir TTS dizesi sağlayabilirsiniz. Widget'larınızla sesli bağlam sağlamak için bunu eklemenizi öneririz. Bu işlev, Asistan'da widget'larınıza eşlik eden metin ve TTS girişlerini ayarlamanıza olanak tanıyan Uygulama İşlemleri Widget'ları Uzantı kitaplığı tarafından sağlanmaktadır.
TTS tanıtımınızı sunmak için iyi bir yer, uygulama veritabanından döndürülen etkinlik verilerini biçimlendiren formatDataAndSetWidget
işlevidir.
StatsWidget.kt
ürününde,formatDataAndSetWidget
işlevine şu kodu ekleyin:// StatsWidget.kt private fun formatDataAndSetWidget( activityStat: FitActivity, ) { // ... // Add conditional for hasBii for widget with data if (hasBii) { // Formats TTS speech and display text for Assistant val speechText = context.getString( R.string.widget_activity_speech, activityExerciseTypeFormatted, formattedDate, durationInMin, distanceInKm ) val displayText = context.getString( R.string.widget_activity_text, activityExerciseTypeFormatted, formattedDate ) setTts(speechText, displayText) } }
Önceki kod, biri konuşma, diğeri metin için olmak üzere iki dize kaynağına başvuruyor. TTS önerileri için widget videomuzun Metin Okuma stili önerisi bölümüne göz atın. Örnek, widget örneğine TTS bilgileri sağlayan yeni bir işlev olan setTts
ile de ilgilidir.
- Bu yeni
setTts
işlevini, şu kodu kullanarakStatsWidget.kt
işlevine ekleyin:// StatsWidget.kt /** * Sets TTS to widget */ private fun setTts( speechText: String, displayText: String, ) { val appActionsWidgetExtension: AppActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager) .setResponseSpeech(speechText) // TTS to be played back to the user .setResponseText(displayText) // Response text to be displayed in Assistant .build() // Update widget with TTS appActionsWidgetExtension.updateWidget(appWidgetId) }
Son olarak, egzersiz veritabanı istenen bir antrenman türü için boş veriler döndürdüğünde TTS bilgilerini ayarlayarak TTS mantığını tamamlayın.
StatsWidget.kt
içindekisetNoActivityDataWidget()
işlevini şu kodla güncelleyin:// StatsWidget.kt private fun setNoActivityDataWidget() { // ... // Add conditional for hasBii for widget without data if (hasBii) { // formats speech and display text for Assistant // https://developers.google.com/assistant/app/widgets#library val speechText = context.getString(R.string.widget_no_activity_speech, aboutExerciseName) val displayText = context.getString(R.string.widget_no_activity_text) setTts(speechText, displayText) } }
6. Uygulama İşlemini Test Etme
Geliştirme sırasında, test cihazında Asistan Uygulama İşlemleri'ni önizlemek için Google Asistan eklentisini kullanın. Bir uygulama işleminin intent parametrelerini ayarlayarak eylemin kullanıcının Asistan'dan işlem yapmasını istediği çeşitli yöntemleri nasıl ele aldığını test edebilirsiniz.
Önizleme oluşturma
Uygulama İşleminizi eklentiyle test etmek için:
- Araçlar'a gidin > Google Asistan > Uygulama İşlemleri Test Aracı. Google Hesabınızı kullanarak Android Studio'da oturum açmanız istenebilir.
- Önizleme Oluştur'u tıklayın. Sizden istenirse Uygulama İşlemleri politikalarını ve hizmet şartlarını inceleyip kabul edin.
Beklenen bir egzersiz türünü test etme
Test aracında aşağıdaki adımları izleyerek uygulamada tamamlanan son çalıştırmayla ilgili bilgileri gösteren bir widget'ı döndürün:
- Aracın bir BII seçmeniz ve yapılandırmanız istediği ilk adımda
actions.intent.GET_EXERCISE_OBSERVATION
seçeneğini belirleyin. - exerciseObservation kutusunda,
climbing
olan varsayılan Egzersiz adınırun
olarak güncelleyin. - Run App Action'ı (Uygulama İşlemini Çalıştır) tıklayın.
Beklenmeyen bir egzersiz türünü test etme
Test aracında beklenmedik bir egzersiz türünü test etmek için:
- exerciseObservation kutusunda,
Run
olanname
değeriniClimbing
olarak güncelleyin. - Run App Action'ı (Uygulama İşlemini Çalıştır) tıklayın.
Asistan, "Etkinlik bulunamadı" mesajını gösteren bir widget döndürmelidir ekleyebilirsiniz.
Yedek niyetini test edin
Yedek niyetini tetikleyen sorgular, herhangi bir egzersiz türünün günlüğe kaydedilen son aktivitesi hakkında bilgi gösteren bir widget döndürmelidir.
Yedek amacını test etmek için:
- exerciseObservation kutusundaki
aboutExercise
nesnesini silin. - Run App Action'ı (Uygulama İşlemini Çalıştır) tıklayın.
Asistan, tamamlanan son alıştırmayla ilgili bilgileri gösteren bir widget döndürmelidir.
7. Sonraki adımlar
Tebrikler!
Artık kullanıcıların ihtiyaçlarını karşılama ve kullanarak bir Android Widget'ı sorgulayabilir.
İşlediğimiz konular
Bu codelab'de şunları öğrendiniz:
- BII'ye uygulama widget'ı ekleyin.
- Android Extras'taki parametrelere erişmek için bir widget'ta değişiklik yapma
Sırada ne var?
Buradan, fitness uygulamanızda daha fazla hassaslaştırma yapmayı deneyebilirsiniz. Bitmiş projeye referans vermek için GitHub'da ana depoya göz atın.
Aşağıda, Uygulama İşlemleri ile bu uygulamanın kapsamını genişletme hakkında daha fazla bilgi için bazı öneriler verilmiştir:
- Uygulamalarınızı Asistan'a genişletmenin diğer yollarını keşfetmek için Uygulama İşlemleri yerleşik intentler referansını ziyaret edin.
Actions on Google yolculuğunuza devam etmek için aşağıdaki kaynakları inceleyin:
- developers.google.com/assistant/app: Google Asistan Uygulama İşlemleri için resmi belge sitesi.
- Uygulama İşlemleri örnek dizini: Uygulama İşlemleri özelliklerini keşfetmek için örnek uygulamalar ve kod.
- Actions on Google GitHub deposu: Örnek kod ve kitaplıklar.
- r/GoogleAssistantDev: Google Asistan ile çalışan geliştiriciler için resmi Reddit topluluğu.
En son duyurularımızı kaçırmamak için bizi @ActionsOnGoogle Twitter'da takip edin ve oluşturduğunuz içerikleri paylaşmak için #appactions adresine tweet atın.
Geri bildirim anketi
Son olarak, bu codelab'deki deneyiminiz hakkında geri bildirimde bulunmak için lütfen bu anketi doldurun.