Gemini از سه قالب مختلف از intentها استفاده میکند که برنامه ناوبری شما میتواند از آنها پشتیبانی کند. شما میتوانید با اعلام فیلترهای intent که در این صفحه به تفصیل شرح داده شدهاند، در مانیفست برنامه خود، به قابلیت همکاری و ادغام برنامه خود و Gemini دست یابید. برای کسب اطلاعات بیشتر در مورد intentها، به Intent مراجعه کنید.
کلاس Intent برنامه ناوبری Gemini از intent های زیر پشتیبانی می کند:
- قصد ناوبری
- هدف جستجو
- قصد اقدام سفارشی
شکل ۱. جریان دادههای Intent.
پارامترهای موجود در دادههای intent
دادههای Intent از یک قالب URI پیروی میکنند که شامل پارامترهایی بر اساس Intent ارسالی شما است. برخی از پارامترها همیشه در دادهها ارائه میشوند. این بدان معناست که میتوانید انتظار داشته باشید که آنها همیشه مقدار صریحی داشته باشند. با این حال، پارامترهای اختیاری همیشه مقداری در دادهها ندارند. برای اطلاعات بیشتر، به Data test مراجعه کنید.
اهداف آفلاین
تمام intent های ذکر شده در این صفحه، انواع آفلاین خود را نیز دارند. شما میتوانید با اضافه کردن .offline به طرح آنها، آنها را از هم تشخیص دهید. به عنوان مثال، intent ناوبری از طرح geo.offline استفاده میکند. این فیلترهای intent در manifest، توانایی برنامه را برای پشتیبانی از این اقدامات به صورت آفلاین نشان میدهند.
قصد ناوبری
از یک اینتنت ناوبری برای انجام درخواست کاربر جهت پیمایش به یک مقصد خاص استفاده کنید. این مقصد میتواند یک مکان (آدرس) یا چندین مکان (به عنوان مثال، کافیشاپها و پمپ بنزینها) باشد. دادههای اینتنت از یک قالب URI مشخص شده برای هر اینتنت پیروی میکنند.
قالب هدف
کلاس Intent از فرمت زیر برای intent برنامه ناوبری استفاده میکند:
دسته بندی: android.intent.category.DEFAULT
اقدام:
- سیستم عامل اندروید اتو و اندروید اتوموبیل:
androidx.car.app.action.NAVIGATE - سایر عوامل شکل:
android.intent.action.NAVIGATE
طرح: geo
مثالها:
-
geo:0,0?q=Googleplex -
geo:0,0?q=1600+Amphitheatre+parkway&mode=b&intent=add_a_stop -
geo:0,0?q=coffee+shop&mode=w&intent=navigation -
geo:1.1,2.2?q=Starbucks+on+Main+Street&mode=w&intent=navigation
رفتار پیشنهادی برنامه: پیمایش به مکان مشخصشده شروع میشود یا از کاربر خواسته میشود از بین چندین گزینه انتخاب کند.
فیلترهای هدف آشکار
قالب intent زیر را در فایل manifest برنامه خود اعلام کنید تا Gemini بداند که برنامه ناوبری شما میتواند intentهای ناوبری را دریافت کند.
همه فرم فاکتورها به جز اندروید اتو و اندروید اتو او اس:
<intent-filter>
<action android:name="android.intent.action.NAVIGATE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
اندروید اتو و سیستم عامل اندروید اتو:
<intent-filter>
<action android:name="androidx.car.app.action.NAVIGATE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
پارامترهای ارائه شده
انتظار میرود پارامترهای زیر در دادههای ارائه شده برای اینتنت اپلیکیشن ناوبری موجود باشند.
جستجوی موقعیت مکانی یا مختصات جغرافیایی
هر کوئریِ هدف ناوبری، بسته به نوع دادهی درخواستی، شامل یک یا هر دوی این پارامترها میشود:
پرس و جو موقعیت مکانی
به مکانی که کاربر سعی در پیمایش آن دارد اشاره دارد. از این دادهها برای تعیین مقصد کاربر استفاده کنید.
کلید پارامتر:
q
مقدار: مقصد مورد نظر کاربر.مثال:
geo:0,0?q=Golden+Gate+Bridge
تفسیر: کاربر میخواهد به سمت پل گلدن گیت حرکت کند.مختصات جغرافیایی (طول و عرض جغرافیایی)
به مختصات خاصی که توسط کاربر برای ناوبری استفاده میشود اشاره دارد.
کلید پارامتر:
geo:lat,long
مقدار: مختصات درخواستی کاربر.مثال:
geo:1.1,2.2?mode=w&intent=navigation
تفسیر: کاربر میخواهد به مختصات (۱.۱، ۲.۲) پیمایش کند.
پارامترهای اختیاری
پارامترهای اختیاری ارائه شده در دادههای اینتنت اپلیکیشن ناوبری در این بخش توضیح داده شدهاند.
قصد
هدف کاربر را تعریف میکند. اگر این پارامتر تنظیم نشده باشد، هدف پیشفرض کاربر به عنوان navigation در نظر گرفته میشود.
کلید پارامتر: intent
مقادیر ممکن:
-
navigation[مقدار پیشفرض] - مقصد را جایگزین کرده و پیمایش را شروع میکند. از این برای پرسوجوهایی مانند navigation to x استفاده کنید. -
add_a_stop- ایستگاه بعدی را به همراه مقصدهای قبلی اضافه میکند. از این برای کوئریهایی مانند اضافه کردن یک ایستگاه در x استفاده کنید. -
directions- جهت مسیر را بدون شروع پیمایش نشان میدهد. از این برای پرسوجوهایی مانند جهت به x استفاده کنید.
مثال: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop تفسیر: کاربر میخواهد یک نقطه توقف به میدان Bellevue، Bellevue، با مختصات فعلی [47.6، -122.2] اضافه کند.
اجتناب از
مواردی را که باید در ناوبری از آنها اجتناب کرد، تعریف میکند.
کلید پارامتر: avoid
مقادیر ممکن:
-
f- کشتیها -
h- بزرگراهها -
t- عوارض
مثال: geo:0,0?q=googleplex&avoid=tf
تفسیر: کاربر میخواهد به گوگلپلکس برود و از پرداخت عوارض و پرداخت هزینه کشتیها اجتناب کند.
حالت سفر
حالت سفر، روش حمل و نقلی را نشان میدهد که کاربر در پرس و جو مشخص کرده است.
کلید پارامتر: mode
مقادیر ممکن:
-
b- دوچرخه -
d- رانندگی -
x- تاکسی -
l- دو چرخ -
r- ترانزیت -
w- راه رفتن
مثال: geo:0,0?q=Googleplex&mode=r
تفسیر: کاربر میخواهد با استفاده از وسایل حمل و نقل عمومی به گوگلپلکس برود.
ورود
برای ثبت منبع ورودی استفاده میشود.
مقادیر ممکن: دستیار
مثال: geo:47.61594547836694,-122.20373173098756?entry=assistant
هدف جستجو
از یک هدف جستجو برای جستجوی یک عبارت جستجو استفاده کنید و هنگام رانندگی چندین نتیجه را در طول مسیر نمایش دهید.
قالب هدف
کلاس Intent از قالب زیر برای اهداف جستجو استفاده میکند:
دسته بندی: android.intent.category.DEFAULT
اقدام: android.intent.action.VIEW
طرح: geo
مثال: geo:0,0?q=restaurants+nearby
رفتار پیشنهادی برنامه: فهرستی از مکانهایی را که با عبارت جستجوی کاربر مطابقت دارند، باز کنید.
فیلترهای هدف آشکار
قالب intent زیر را در فایل manifest برنامه خود اعلام کنید تا Gemini بداند که برنامه ناوبری شما میتواند intentهای جستجو را دریافت کند:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
پارامترهای ارائه شده
انتظار میرود پارامترهای زیر در دادههای هدف جستجو ارائه شده موجود باشند.
پرس و جو موقعیت مکانی
یک پرس و جوی موقعیت مکانی، مکانی است که کاربر هنگام رانندگی به دنبال آن میگردد. این پرس و جو میتواند غیردقیق یا در امتداد یک مسیر ناوبری فعال باشد.
کلید پارامتر: q
مقدار: عبارت جستجوی کاربر، که میتواند نوع مکان مانند کافیشاپ یا دانشگاه باشد، اما میتواند شامل کمیتسنجهایی مانند -near me یا -with best rating نیز باشد.
مثال: geo:0,0?q=restaurants+nearby
تفسیر: کاربر میخواهد رستورانهای اطراف را جستجو کند.
قصد اقدام سفارشی
از یک intent سفارشی برای اقدامات سفارشی مانند گزارش تصادفات و پایان دادن به ناوبری استفاده کنید. نوع اقدام اصلی توسط پارامتر query act تعریف میشود. میتوانید پارامترهای اضافی را بسته به نوع اقدام تنظیم کنید.
قالب هدف
کلاس Intent از قالب زیر برای action intent سفارشی استفاده میکند:
دسته بندی: android.intent.category.DEFAULT
اقدام: android.intent.action.VIEW
طرح: geo.action
مثال: geo.action:?act=report&accident_type=major
فیلترهای هدف آشکار
قالب intent زیر را در فایل manifest برنامه خود اعلام کنید تا به Gemini اطلاع دهید که برنامه ناوبری شما میتواند intentهای action سفارشی را دریافت کند.
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo.action" />
</intent-filter>
پارامترهای ارائه شده
انتظار میرود پارامترهای زیر در دادههای ارائه شده برای اقدام سفارشی (Custom Action intent) موجود باشند:
نوع اقدام
این نوع اقدام سفارشی را که کاربر میخواهد انجام دهد، تعریف میکند.
کلید پارامتر: act
مثالها:
geo.action:?act=report_crash&accident_type=major
تفسیر: کاربر میخواهد یک تصادف بزرگ را گزارش دهد.geo.action:?act=mute
تفسیر: کاربر میخواهد دستورالعملهای صوتی را بیصدا کند.geo.action:?act=exit_navigation
تفسیر: کاربر میخواهد از ناوبری فعلی خارج شود.
رفتار پیشنهادی برنامه: اقدام درخواستی را در برنامه ناوبری انجام دهید یا پیام اقدام پشتیبانی نشده را نشان دهید.
شکل زیر نمونهای از جفتهای کلید-مقدار را در پرسوجوی پاسخ نشان میدهد:
شکل ۲. جریان دادهی سفارشیِ قصد اقدام.
جفت کلید-مقدار:
"act": "report_crash"
"road_direction": other_side"
هر اکشن سفارشی همیشه یک پارامتر act به عنوان کلید دارد. در کد مثال فوق، برخی اکشنها میتوانند جفتهای کلید-مقدار اضافی داشته باشند. برای مثال، act=report_crash از این کلیدهای اضافی پشتیبانی میکند: accident_type و road_direction .
کلید accident_type میتواند از دو مقدار، minor و major ، پشتیبانی کند.
مقادیر ممکن
جدول، مقادیر ممکنی را که Gemini میتواند به عنوان عملی که کاربر سعی در انجام آن در برنامه ناوبری دارد، ارسال کند، فهرست میکند.
| ارزش | توضیحات | کلیدهای پارامتر اختیاری | مقادیر پارامتر اختیاری |
|---|---|---|---|
allow_ferries | برای اجازه دادن به کشتیها، اولویت مسیر را تغییر دهید. | ||
allow_highways | اولویت مسیر را برای مجاز کردن بزرگراهها تغییر دهید. | ||
allow_tolls | ترجیح مسیر را برای مجاز کردن عوارض تغییر دهید. | ||
avoid_ferries | برای جلوگیری از سوار شدن به کشتی، مسیر خود را تغییر دهید. | ||
avoid_highways | برای جلوگیری از برخورد با بزرگراهها، اولویت مسیر را تغییر دهید. | ||
avoid_tolls | برای جلوگیری از پرداخت عوارض، مسیر خود را تغییر دهید. | ||
distance_to_destination | نمایش فاصله تا مقصد | ||
distance_to_next_turn | فاصله تا پیچ بعدی را نشان دهید. | ||
eta | نمایش ETA به مقصد | ||
exit_navigation | خروج یا لغو پیمایش. | ||
follow_mode | نمای نقشه را به حالت دنبال کردن تغییر دهید. | ||
go_back | به عملیات قبلی نقشه برگردید. | ||
hide_satellite | تنظیمات نقشه را برای پنهان کردن اطلاعات ماهواره تغییر دهید. | ||
hide_traffic | تنظیمات نقشه را برای پنهان کردن اطلاعات ترافیک تغییر دهید. | ||
mute | راهنمای صوتی را بیصدا کنید. | ||
query_current_road | نشان دهید که کاربر در حال حاضر در چه مسیری قرار دارد. | ||
query_destination | مقصد را نشان دهید. | ||
query_next_turn | نشان دهید نوبت بعدی چیست. | ||
report_crash | خرابیها را گزارش دهید. | accident_type | minor |
major | |||
road_direction | this_side | ||
other_side | |||
report_hazard | خطرات را گزارش دهید. | hazard_type | animal |
broken_traffic_light | |||
construction | |||
flooding | |||
fog | |||
hail | |||
ice | |||
missing_sign | |||
object_on_road | |||
pothole | |||
roadkill | |||
snow | |||
vehicle | |||
weather | |||
road_direction | this_side | ||
other_side | |||
location_on_road | on_road | ||
on_shoulder | |||
report_police | گزارش فعالیتهای پلیس | road_direction | this_side |
other_side | |||
report_road_closure | گزارش مسدود شدن جادهها | road_closure_type | partial |
full | |||
report_traffic | گزارش ترافیک. | traffic_type | moderate |
heavy | |||
standstill | |||
road_direction | this_side | ||
other_side | |||
route_overview | نمایش نمای کلی مسیر. | ||
show_alternates | مسیرهای جایگزین را نشان دهید. | ||
show_directions_list | دستورالعملهای مرحله به مرحله را نشان دهید. | ||
show_satellite | نمایش اطلاعات ماهوارهای روی نقشه | ||
show_traffic | نمایش ترافیک روی نقشه. | ||
time_to_destination | نمایش ETA به مقصد | ||
time_to_next_turn | زمان رسیدن به نوبت بعدی را نشان دهید. | ||
unmute | راهنمای صوتی را بیصدا کنید. |
بازیابی وضعیت ناوبری
برای اطمینان از اینکه Gemini میتواند اطلاعات دقیق و بلادرنگ را هنگام پرسیدن وضعیت سفر کاربر به او ارائه دهد، برنامه شما باید با استفاده از سرویس خودرو NavigationManager فراداده ناوبری را ارائه دهد. برای راهنمایی در مورد پیادهسازی، به بخش «ارتباط فراداده ناوبری» مراجعه کنید.