Uygulama İşlemleri, kullanıcıların Google Asistan'la konuşmalarına ve "Ok Google, Örnek Uygulama'da bana bir araç çağırmamı iste" gibi bir şey söylediklerinde doğrudan belirli uygulama hedeflerine atlamalarına olanak tanır. Ön plan uygulama çağrısı sayesinde, bir kullanıcı uygulamanızı zaten açmış durumdayken sunduğu deneyimi daha da iyileştirebilirsiniz.
Ön plan uygulama çağrısı, belirli bir etkinlik cihaz ön planındayken uygulama adının belirtilmesini gerektirmeden yerleşik amaçların (BII'ler) eşleştirilmesini sağlar.
Örneğin, bir kullanıcı araç paylaşma uygulamanızı ön planda tutarak Google Asistan'a "Mountain View'a taksi çağırmam için bana sipariş ver" diyor ya da yazıyor. Uygulamanız, hedef alanını Mountain View olarak ayarlamak için bu girişi kullanır. Ardından, kullanıcı "SFO'dan araç sipariş et" dediğinde veya yazdığında uygulamanız, uygulamanın durumunu korurken teslim alma konumunu ayarlayabilir.
Sınırlamalar
Ön plan uygulama çağrısı yalnızca aşağıdaki iş ortağı cihazları (BII'lar) için kullanılabilir:
actions.intent.CREATE_MONEY_TRANSFER
actions.intent.CREATE_TAXI_RESERVATION
actions.intent.OPEN_APP_FEATURE
actions.intent.ORDER_MENU_ITEM
actions.intent.PAUSE_EXERCISE
actions.intent.RECORD_EXERCISE
actions.intent.RECORD_FOOD_OBSERVATION
actions.intent.RESUME_EXERCISE
actions.intent.START_EXERCISE
actions.intent.STOP_EXERCISE
Belirli bir BII için ön plandaki uygulama çağrısıyla ilgili yerel ayar desteği ve örnek sorgular almak üzere yerleşik amaç referansına bakın.
Ön planda uygulama çağrısını destekleme
Ön plan uygulamasının çağrılması için destek eklemek, istenen bir ön plan etkinliğine göre istek karşılama davranışı eklemeyi içerir. Asistan, bu etkinlik ön planda olduğunda ve Uygulama İşlemi çağrıldığında, uygulamanızın durumunu güncelleyebilmesi için derin bağlantı amacını ilgili etkinliğe ek bir işaretle iletir.
BII için ön plan uygulama çağrısını uygulamak üzere aşağıdakileri yapın:
shortcuts.xml
dosyanızda, ön plan uygulama çağrısını desteklemek istediğiniz BII<capability>
'ye<intent>
etiketi ekleyin.<intent>
etiketine bir<extra>
etiketi ekleyin.<extra>
etiketindeandroid:key
değerini"requiredForegroundActivity"
olarak ayarlayın veandroid:value
politikasını ön planda olmasını istediğiniz etkinliğe ayarlayın. Etkinliği, sınıf kısaltmaları olmadan, uygulama paketinizin adını, ardından bir eğik çizgi (/) ve ardından etkinlik adını kullanarak belirtin:APP_PACKAGE_NAME/ACTIVITY_NAME
"requiredForegroundActivity"
için belirttiğiniz ön plan etkinliğinde,SINGLE_TOP
işareti ayarlanmış bir derin bağlantı amacını işlemek içinonNewIntent()
yöntemini uygulayın. Belirtilen etkinlik ön plandayken Asistan, derin bağlantı amacını bu işaretle istek karşılama olarak iletir.onNewIntent()
çağrılarını ön plan etkinliğinizin güncellemesi olarak değerlendirin ve derin bağlantıdan çıkarılan parametreleri kullanarak bu etkinlikteki durumu yönetin.
Uygulamanız, tüm harici derin bağlantıların tek bir geçiş yönlendiricisi etkinliğini tetiklemesine izin vermek için yönlendirici etkinliği kullanıyorsa Yönlendirici etkinliklerini işleme konusuna bakın.
Örnek
Örnek shortcuts.xml
dosyasından alınan aşağıdaki snippet'te requiredForegroundActivity
özelliğinin nasıl ekleneceği gösterilmektedir:
<capability name="actions.intent.CREATE_TAXI_RESERVATION"> <!-- Trigger with foreground app invocation if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> <extra android:key="requiredForegroundActivity" android:value="com.example.app/com.example.app.MainActivity" /> </intent> <!-- This won't trigger if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> </intent> </capability>
Kullanıcı izinleri
Ön plan uygulama çağrısının kullanıcıda çalışması için kullanıcının Ekrandaki metni kullan cihaz ayarını etkinleştirmiş olması gerekir. Bu ayarın konumu ve tam adı OEM'ye veya cihaz üreticisine göre değişiklik gösterebilir. Örneğin, cihaz ayarı, kullanıcının cihazında Ekran bağlamını kullan olarak adlandırılmış olabilir.
Bir Pixel telefonda bu Android ayarına erişmek için önce Ayarlar > Uygulamalar ve bildirimler > Varsayılan uygulamalar > Asistan uygulaması'na gidin. Ardından, Yardım ve ses girişi ekranında Ekrandaki metni kullan'ı etkinleştirin.
Çağrınızı test edin
Ön plan uygulama çağrınızı denemek için şu adımları uygulayın:
- Ekrandaki metni kullan cihaz ayarını etkinleştirmek için Kullanıcı izinleri bölümündeki talimatları uygulayın.
- Gerekli ön plan etkinliği olarak belirttiğiniz etkinliği açın.
- Asistan'ı mevcut uygulamada yer paylaşımı olarak açmak için ana sayfa düğmesini basılı tutun. Uygulama adını belirtmeden, uyguladığınız BII'ye karşılık gelen bir sorgu sağlayın. Başarılı olduğunda uygulamanız, durumunu korurken ve etkinliği yeniden başlatmadan sorgunuza göre kendini günceller.
Yönlendirici etkinliklerini işleme
Bazı uygulamalar, tüm harici derin bağlantıları tek bir ağ geçidi yönlendirici etkinliği kullanarak işler. Daha sonra yönlendirici etkinliği, uygun iş mantığı etkinliğini başlatır (tüm kontrol ve doğrulamalardan sonra) ve iş mantığı etkinliğini ön plana döndürür.
Derin bağlantının tetiklenmesi, yönlendirici etkinliğinin görev yığınının en üst kısmına, ön plan etkinliğinin üzerine eklenmesine neden olabilir. Yönlendirici etkinliği kullanan uygulamalarda, yönlendirici etkinliğinin Google Asistan tarafından mevcut ön plan etkinliği örneğine gönderilen amacı ilettiğinden emin olmanız gerekir. Bu gereksinimi yerine getirme yönteminiz, yönlendirici etkinliğinizin başladığı yere bağlı olarak değişir.
Yönlendiriciniz iş mantığı işleminizle aynı görev yığınında başlıyorsa SINGLE_TOP
, CLEAR_TOP
ve NEW_TASK
için bit tabanlı VEYA kullanarak amacı yönlendirin:
Kotlin
Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
Java
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
Yönlendiriciniz iş mantığı etkinliğinizden ayrı bir görev yığınında başlıyorsa bunun yerine SINGLE_TOP
işaretiyle amacı işletme mantık etkinliğine yönlendirin.