کنترل صوتی به رانندگان امکان میدهد بدون برداشتن دست از روی فرمان یا چشم از جاده، کارهایشان را انجام دهند. با «کنشهای برنامه» برای برنامههای خودرو، رانندگان میتوانند از Gemini یا «دستیار Google» برای کنترل برنامههای Android در سیستم اطلاعات سرگرمی خود استفاده کنند و چیزهایی مثل «Ok Google، در ExampleApp پارکینگ کنار خیابان پیدا کن» بگویند.
«کنشهای برنامه» با برنامههای خودرو نقطه موردعلاقه (POI) کار میکند. این راهنما الزامات و محدودیتهای خاص برای ادغام «کنشهای برنامه» در برنامه «نقطه موردعلاقه» شما را پوشش میدهد.
روش کار
«کنشهای برنامه» عملکرد درونبرنامهای شما را به Gemini یا «دستیار Google» گسترش میدهد و به کاربران امکان میدهد
بااستفاده از صدایشان به ویژگیهای برنامه دسترسی پیدا کنند. وقتی کاربر «کنش برنامه» را فراخوانی میکند،
Gemini یا «دستیار Google» پُرسمان را با قصد ازپیشتعریفشده (BII) اعلامشده در منبع shortcuts.xml برنامهتان مطابقت میدهد و برنامهتان را در صفحه درخواستشده راهاندازی میکند.
بااستفاده از عناصر capability Android، پشتیبانی از «هدفهای داخلی» را در برنامهتان اعلام میکنید.
وقتی برنامهتان را بااستفاده از کنسول Google Play بارگذاری میکنید، Google قابلیتهای اعلامشده در برنامهتان را ثبت میکند و آنها را برای دسترسی کاربران از Gemini یا «دستیار Google» دردسترس قرار میدهد.
- کاربر Gemini یا «دستیار Google» را فعال میکند و درخواست صوتی برای برنامه خاصی ارائه میدهد.
- Gemini یا «دستیار Google» درخواست را با مدل ازپیش آموزشدیده (BII) مطابقت میدهد و پارامترهای پشتیبانیشده توسط BII را استخراج میکند.
- در این مثال، Gemini یا «دستیار Google» پرسمان را با
GET_CHARGING_STATIONBII مطابقت میدهد، پارامتر مکان «SFO» را استخراج میکند، و مکان را به مختصات جغرافیایی آن ترجمه میکند. - برنامه ازطریق تعریف برآوردهسازی آن برای این BII راهاندازی میشود.
- برنامه فرایند تکمیل را پردازش میکند و گزینههای ایستگاه شارژ را در سیستم اطلاعات سرگرمی راننده نمایش میدهد.
محدودیتها
پیادهسازیهای خودرویی «کنشهای برنامه» محدودیتهای زیر را دارند:
«کنشهای برنامه ماشین» باید بااستفاده از پیوندهای عمیق Android برآورده شوند. برای کسب اطلاعات درباره برآوردهسازیهای «کنشهای برنامه»، به ارائه جزئیات برآوردهسازی برای هدفهای ازپیشتعریفشده مراجعه کنید.
پیادهسازیهای خودرو فقط از «قصدهای درونساخت» زیر پشتیبانی میکنند:
- پارکینگ -
GET_PARKING_FACILITY - درحال شارژ -
GET_CHARGING_STATION
- پارکینگ -
الزامات
مراحل زیر را برای آمادهسازی برنامه خودرو برای «کنشهای برنامه» انجام دهید:
- الزامات کلی برنامه Android را برای «کنشهای برنامه» برآورده کنید.
- وابستگی Car App Library را اضافه کنید. برای جزئیات، اعلام وابستگیها را ببینید.
تعیین هدف و برآورده کردن آن
اولین قدم برای فعال کردن فرمان صوتی در برنامه خودرو با «کنشهای برنامه» این است که مشخص کنید برنامه شما از کدام فرمانهای صوتی کاربر یا هدفها پشتیبانی میکند. سپس برای هر قصد، یک برآوردهسازی تعریف میکنید تا مشخص کنید برنامهتان چگونه باید درخواست را برآورده کند.
برنامه خودرو شما از کدام هدفها پشتیبانی میکند؟
«کنشهای برنامه» مدلهای گفتاری ازپیش آموزشدیدهای را ارائه میدهد که قصد ازپیشتعریفشده (BII) نامیده میشوند، که میتوانند فرمانهای گفتاری کاربر را وقتی میگوید «Ok Google» درک و تفسیر کنند. برای پاسخ دادن به درخواستهای صوتی، کافی است به Gemini یا «دستیار Google» اعلام کنید که برنامهتان از کدام هدفهای داخلی پشتیبانی میکند. برای مثال، اگر میخواهید برنامهتان در پیدا کردن پارکینگ کمک کند،
GET_PARKING_FACILITYBII را پیادهسازی میکنید. یاGET_CHARGING_STATIONBII را پیادهسازی کنید تا به کاربران کمک کنید ایستگاههای شارژ خودرو برقی را پیدا کنند.برنامه شما چگونه باید هر هدف را برآورده کند؟
برنامه شما با راهاندازی خود در صفحه مناسب، درخواست صوتی را برآورده میکند. «کنشهای برنامه» اجرای شما را با پارامترهای استخراجشده از درخواست کاربر ارائه میدهد و به شما امکان میدهد پاسخ خود را با نیازهای کاربر تطبیق دهید.
ادغام کردن «کنشهای برنامه»
پساز تعیین استراتژی برآوردهسازی، این مراحل را برای فعال کردن فرمان صوتی برنامه خودرو دنبال کنید:
فعالیت اصلیتان
AndroidManifest.xmlرا باز کنید و پشتیبانی از میانبرهای Android را اعلام کنید. از عناصر میانبرcapabilityبرای اعلام کردن به Gemini یا «دستیار Google» درباره هدفهای داخلی برنامه که برنامهتان پشتیبانی میکند استفاده میکنید. برای اطلاعات بیشتر، افزودن قابلیتها را ببینید.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />سپس، عنصر
<intent-filter>را بهAndroidManifest.xmlاضافه کنید. این کار به Gemini یا «دستیار Google» امکان میدهد از پیوندهای عمیق برای متصل شدن به محتوای برنامهتان استفاده کند.برای اجرای Android Auto،
<intent-filter>همانند برنامه تلفن همراه شما است.برای «سیستمعامل Android Automotive»، جلسه
CarAppServiceبرنامهتان Gemini یا «دستیار Google» را راهاندازی میکند. برای اینکه جلسهای بتواند پیوند عمیق شما را راهاندازی کند،<intent-filter>را در عنصر<activity>ازAndroidManifest.xmlمشخص کنید.
<!-- AndroidManifest.xml --> <activity ... android:name="androidx.car.app.activity.CarAppActivity"> ... <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="YOUR_SCHEME" android:host="YOUR_HOST" /> </intent-filter> </activity>اگر ازقبل فایل
shortcuts.xmlدر فهرست راهنمایres/xmlبرنامهتان ندارید، فایل جدیدی ایجاد کنید. برای کسب اطلاعات درباره نحوه استفاده «کنشهای برنامه» از میانبرهای Android، به ایجاد shortcuts.xml مراجعه کنید.در
shortcuts.xml،capabilityرا برای «هدف داخلی برنامه» انتخابیتان پیادهسازی کنید. سپس،<intent>تودرتو اضافه کنید تا برآوردهسازی برنامه را تعریف کنید.<!-- shortcuts.xml --> <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.GET_PARKING_FACILITY"> <intent> <url-template android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}"> <!-- Facility name, e.g. "Googleplex" --> <parameter android:name="parkingFacility.name" android:key="name"/> <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" --> <parameter android:name="parkingFacility.address" android:key="address"/> <!-- Disambiguate the type of service, e.g. "valet" --> <parameter android:name="parkingFacility.disambiguatingDescription" android:key="disambiguatingDescription"/> <!-- Latitude, e.g. "37.3861" --> <parameter android:name="parkingFacility.geo.latitude" android:key="latitude"/> <!-- Longitude, e.g. "-122.084" --> <parameter android:name="parkingFacility.geo.longitude" android:key="longitude"/> </intent> </capability> </shortcuts>درنهایت، منطق
Session()برنامه خودرو را بهروز کنید تا بتواند اجرای «کنشهای برنامه» ورودی را مدیریت کند. نمونههای زیر نحوه مدیریت قصد را برایSession.onCreateScreen()وSession.onNewIntent()نشان میدهد.onCreateScreen()
کاتلین
@Override fun onCreateScreen(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
جاوا
@Override public Screen onCreateScreen(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
onNewIntent()
کاتلین
@Override fun onNewIntent(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
جاوا
@Override public void onNewIntent(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
پیشدید، آزمایش، و انتشار برنامه
«کنشهای برنامه» ابزارهایی برای پیشدید و آزمایش برنامهتان ارائه میدهد. برای کسب اطلاعات درباره این ابزارها و جزئیات مربوط به نحوه انتشار برنامه خودرو با قابلیت صوتی در «فروشگاه Play»، به نمای کلی کنشهای برنامه مراجعه کنید.