فراخوانی برنامه پیش زمینه

App Actions به کاربران این امکان را می دهد که با Google Assistant صحبت کنند و وقتی چیزی مانند "Hey Google, Order to Sade on Example App" را می گویند، مستقیماً به مقصد برنامه خاص بپرند. با فراخوانی برنامه پیش‌زمینه، می‌توانید زمانی که کاربر از قبل برنامه شما را باز کرده است، تجربه را بیشتر بهبود بخشید.

فراخوانی برنامه پیش زمینه اجازه می دهد تا زمانی که یک فعالیت خاص در پیش زمینه دستگاه است، مقاصد داخلی (BII) بدون نیاز به ذکر نام برنامه مطابقت داده شوند.

به عنوان مثال، یک کاربر برنامه اشتراک‌گذاری سواری شما را در پیش‌زمینه دارد و می‌گوید یا تایپ می‌کند، «Order me ride to Mountain View» را به Google Assistant می‌گوید. برنامه شما از این ورودی برای تنظیم فیلد مقصد روی Mountain View استفاده می‌کند. سپس، زمانی که کاربر می‌گوید یا تایپ می‌کند، «به من یک سواری از SFO سفارش بده»، برنامه شما می‌تواند مکان دریافت را تنظیم کند و در عین حال وضعیت برنامه شما را حفظ کند.

محدودیت ها

فراخوانی برنامه پیش زمینه فقط برای BII های زیر در دسترس است:

برای دریافت پشتیبانی از زبان و نمونه سوالات مربوط به فراخوانی برنامه پیش زمینه برای یک BII خاص، به مرجع هدف داخلی مراجعه کنید.

پشتیبانی از فراخوانی برنامه پیش زمینه

افزودن پشتیبانی برای فراخوانی برنامه پیش زمینه شامل افزودن رفتار تحقق بر اساس یک فعالیت پیش زمینه دلخواه است. وقتی آن فعالیت در پیش‌زمینه است و اکشن برنامه فراخوانی می‌شود، «دستیار» هدف پیوند عمیق را با یک پرچم اضافی به آن فعالیت منتقل می‌کند تا برنامه شما بتواند وضعیت خود را به‌روزرسانی کند.

برای پیاده سازی فراخوانی برنامه پیش زمینه برای BII، موارد زیر را انجام دهید:

  1. در فایل shortcuts.xml خود، یک تگ <intent> را به BII <capability> اضافه کنید که می‌خواهید از فراخوانی برنامه پیش‌زمینه پشتیبانی کنید.
  2. در تگ <intent> ، یک تگ <extra> اضافه کنید.
  3. در تگ <extra> ، android:key روی "requiredForegroundActivity" تنظیم کنید و android:value روی فعالیتی که می‌خواهید در پیش‌زمینه باشد تنظیم کنید. فعالیت را بدون هیچ گونه اختصاری کلاس، با استفاده از نام بسته برنامه خود، و به دنبال آن یک اسلش رو به جلو (/)، به دنبال نام فعالیت مشخص کنید: APP_PACKAGE_NAME/ACTIVITY_NAME
  4. در فعالیت پیش زمینه ای که برای "requiredForegroundActivity" مشخص کرده اید، روش onNewIntent() برای مدیریت یک پیوند عمیق با مجموعه پرچم SINGLE_TOP پیاده سازی کنید. وقتی فعالیت مشخص شده در پیش زمینه باشد، Assistant هدف پیوند عمیق را با این پرچم به عنوان تکمیل ارسال می کند.
  5. تماس‌های onNewIntent() را به‌عنوان به‌روزرسانی‌های فعالیت پیش‌زمینه خود در نظر بگیرید و وضعیت آن فعالیت را با استفاده از پارامترهای استخراج‌شده از پیوند عمیق مدیریت کنید.

اگر برنامه شما از یک فعالیت روتر استفاده می‌کند تا به همه پیوندهای عمیق خارجی اجازه دهد یک فعالیت مسیریاب دروازه‌بان را راه‌اندازی کنند، به مدیریت فعالیت‌های روتر مراجعه کنید.

مثال

قطعه زیر از یک نمونه فایل shortcuts.xml نشان می دهد که چگونه می توان ویژگی requiredForegroundActivity را اضافه کرد:

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

مجوزهای کاربر

در تنظیمات دستگاه، کاربران باید «استفاده از متن از صفحه» را فعال کنند تا فراخوانی برنامه پیش‌زمینه کار کند.

برای اینکه فراخوانی برنامه پیش زمینه برای کاربر کار کند، کاربر باید تنظیمات استفاده از متن از صفحه نمایش دستگاه را فعال کند. مکان و نام دقیق این تنظیم ممکن است بسته به OEM یا سازنده دستگاه متفاوت باشد. به عنوان مثال، تنظیم دستگاه ممکن است به جای استفاده از زمینه صفحه نمایش در دستگاه کاربر نامیده شود.

برای دسترسی به این تنظیم Android در تلفن Pixel، ابتدا به تنظیمات > برنامه‌ها و اعلان‌ها > برنامه‌های پیش‌فرض > برنامه کمکی بروید. سپس، در صفحه Assist و input voice ، Use text from screen را فعال کنید.

فراخوانی خود را آزمایش کنید

برای امتحان فراخوانی برنامه پیش زمینه خود، این مراحل را دنبال کنید:

  1. دستورالعمل های بخش مجوزهای کاربر را دنبال کنید تا تنظیمات استفاده از متن از صفحه نمایش دستگاه را فعال کنید.
  2. برنامه خود را به فعالیتی که به عنوان فعالیت پیش زمینه مورد نیاز فهرست کرده اید باز کنید.
  3. دکمه صفحه اصلی را فشار دهید و نگه دارید تا دستیار به عنوان یک پوشش روی برنامه فعلی باز شود. درخواستی را ارائه دهید که با BII که پیاده‌سازی کرده‌اید، بدون ذکر نام خود برنامه مطابقت دارد. در صورت موفقیت آمیز بودن، برنامه شما با حفظ وضعیت و بدون راه اندازی مجدد فعالیت، خود را بر اساس درخواست شما به روز می کند.

مدیریت فعالیت های روتر

برخی از برنامه‌ها همه پیوندهای عمیق خارجی را با استفاده از یک فعالیت مسیریاب دروازه‌بان مدیریت می‌کنند. سپس اکتیویتی روتر فعالیت منطقی کسب و کار مناسب را شروع می کند (پس از هر گونه بررسی و اعتبارسنجی) و فعالیت منطق تجاری را به پیش زمینه برمی گرداند.

راه اندازی یک پیوند عمیق می تواند باعث شود که فعالیت روتر به بالای پشته وظیفه، بالای فعالیت پیش زمینه اضافه شود. برای برنامه‌هایی که از فعالیت روتر استفاده می‌کنند، باید مطمئن شوید که فعالیت روتر هدف ارسال شده توسط Google Assistant را به نمونه فعالیت پیش‌زمینه فعلی ارائه می‌دهد. نحوه دستیابی به این نیاز بسته به اینکه فعالیت روتر شما از کجا شروع می شود تغییر می کند.

اگر روتر شما در همان پشته کار با فعالیت منطقی کسب و کار شما شروع می شود، هدف را با استفاده از بیتی OR SINGLE_TOP ، CLEAR_TOP ، و NEW_TASK ارسال کنید:

کاتلین

Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK

جاوا

Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK

اگر روتر شما در یک پشته کار جداگانه از فعالیت منطقی کسب و کار شما شروع می شود، به جای آن هدف را با پرچم SINGLE_TOP به فعالیت منطقی کسب و کار ارسال کنید.