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 های زیر در دسترس است:
-
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
برای دریافت پشتیبانی از زبان و نمونه سوالات مربوط به فراخوانی برنامه پیش زمینه برای یک BII خاص، به مرجع هدف داخلی مراجعه کنید.
پشتیبانی از فراخوانی برنامه پیش زمینه
افزودن پشتیبانی برای فراخوانی برنامه پیش زمینه شامل افزودن رفتار تحقق بر اساس یک فعالیت پیش زمینه دلخواه است. وقتی آن فعالیت در پیشزمینه است و اکشن برنامه فراخوانی میشود، «دستیار» هدف پیوند عمیق را با یک پرچم اضافی به آن فعالیت منتقل میکند تا برنامه شما بتواند وضعیت خود را بهروزرسانی کند.
برای پیاده سازی فراخوانی برنامه پیش زمینه برای BII، موارد زیر را انجام دهید:
- در فایل
shortcuts.xml
خود، یک تگ<intent>
را به BII<capability>
اضافه کنید که میخواهید از فراخوانی برنامه پیشزمینه پشتیبانی کنید. - در تگ
<intent>
، یک تگ<extra>
اضافه کنید. - در تگ
<extra>
،android:key
روی"requiredForegroundActivity"
تنظیم کنید وandroid:value
روی فعالیتی که میخواهید در پیشزمینه باشد تنظیم کنید. فعالیت را بدون هیچ گونه اختصاری کلاس، با استفاده از نام بسته برنامه خود، و به دنبال آن یک اسلش رو به جلو (/)، به دنبال نام فعالیت مشخص کنید:APP_PACKAGE_NAME/ACTIVITY_NAME
- در فعالیت پیش زمینه ای که برای
"requiredForegroundActivity"
مشخص کرده اید، روشonNewIntent()
برای مدیریت یک پیوند عمیق با مجموعه پرچمSINGLE_TOP
پیاده سازی کنید. وقتی فعالیت مشخص شده در پیش زمینه باشد، Assistant هدف پیوند عمیق را با این پرچم به عنوان تکمیل ارسال می کند. - تماسهای
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 را فعال کنید.
فراخوانی خود را آزمایش کنید
برای امتحان فراخوانی برنامه پیش زمینه خود، این مراحل را دنبال کنید:
- دستورالعمل های بخش مجوزهای کاربر را دنبال کنید تا تنظیمات استفاده از متن از صفحه نمایش دستگاه را فعال کنید.
- برنامه خود را به فعالیتی که به عنوان فعالیت پیش زمینه مورد نیاز فهرست کرده اید باز کنید.
- دکمه صفحه اصلی را فشار دهید و نگه دارید تا دستیار به عنوان یک پوشش روی برنامه فعلی باز شود. درخواستی را ارائه دهید که با 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
به فعالیت منطقی کسب و کار ارسال کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2024-08-27 بهوقت ساعت هماهنگ جهانی.