Ön plan uygulama çağrısı

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:

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:

  1. shortcuts.xml dosyanızda, ön plan uygulama çağrısını desteklemek istediğiniz BII <capability>'ye <intent> etiketi ekleyin.
  2. <intent> etiketine bir <extra> etiketi ekleyin.
  3. <extra> etiketinde android:key değerini "requiredForegroundActivity" olarak ayarlayın ve android: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
  4. "requiredForegroundActivity" için belirttiğiniz ön plan etkinliğinde, SINGLE_TOP işareti ayarlanmış bir derin bağlantı amacını işlemek için onNewIntent() yöntemini uygulayın. Belirtilen etkinlik ön plandayken Asistan, derin bağlantı amacını bu işaretle istek karşılama olarak iletir.
  5. 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 plandaki uygulama çağrısının çalışması için kullanıcıların cihaz ayarlarında &quot;Ekrandaki metni kullan&quot; seçeneğini etkinleştirmesi gerekir.

Ö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:

  1. Ekrandaki metni kullan cihaz ayarını etkinleştirmek için Kullanıcı izinleri bölümündeki talimatları uygulayın.
  2. Gerekli ön plan etkinliği olarak belirttiğiniz etkinliği açın.
  3. 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.