ใช้ Intent ของแอปการนำทาง

Google Assistant ใช้ Intent 3 รูปแบบที่แอปการนำทางของคุณรองรับ คุณสามารถทำให้แอปทำงานร่วมกันได้และผสานรวมแอปกับ Google Assistant โดยประกาศตัวกรอง Intent ที่แสดงรายละเอียดในหน้านี้ในไฟล์ Manifest ของแอป ดูข้อมูลเพิ่มเติมเกี่ยวกับ Intent ได้ที่ Intent

คลาส Intent ของแอปการนําทางด้วย Assistant รองรับ Intent ต่อไปนี้

  • ความตั้งใจในการไปยังส่วนต่างๆ
  • จุดประสงค์ในการค้นหา
  • ความตั้งใจในการดําเนินการที่กำหนดเอง

โฟลว์ข้อมูล Intent

รูปที่ 1 โฟลว์ข้อมูล Intent

พารามิเตอร์ในข้อมูล Intent

ข้อมูล Intent เป็นไปตามรูปแบบ URI ที่มีพารามิเตอร์ตาม Intent ที่คุณส่ง ระบบจะระบุพารามิเตอร์บางอย่างในข้อมูลเสมอ ซึ่งหมายความว่าคุณคาดหวังได้ว่าค่าเหล่านี้จะมีค่าที่ชัดเจนเสมอ อย่างไรก็ตาม พารามิเตอร์ที่ไม่บังคับอาจไม่ได้ตั้งค่าค่าในข้อมูลเสมอไป ดูข้อมูลเพิ่มเติมได้ที่การทดสอบข้อมูล

ความตั้งใจแบบออฟไลน์

Intent ทั้งหมดที่แสดงในหน้านี้มีตัวแปรแบบออฟไลน์ คุณสามารถแยกความแตกต่างได้โดยการเพิ่ม .offline ต่อท้ายรูปแบบ เช่น Intent การนำทางใช้รูปแบบ geo.offline ตัวกรอง Intent เหล่านี้ในไฟล์ Manifest บ่งบอกถึงความสามารถของแอปในการสนับสนุนการดำเนินการเหล่านี้แบบออฟไลน์

ใช้ Intent การนำทางเพื่อตอบสนองคำขอของผู้ใช้ในการไปยังปลายทางที่เฉพาะเจาะจง ปลายทางนี้อาจเป็นสถานที่ตั้งเดียว (ที่อยู่) หรือหลายแห่งก็ได้ (เช่น ร้านกาแฟและปั๊มน้ำมัน) ข้อมูล Intent เป็นไปตามรูปแบบ URI ที่ระบุไว้สำหรับ Intent แต่ละรายการ

รูปแบบ Intent

คลาส Intent ใช้รูปแบบต่อไปนี้สำหรับ Intent ของแอปการนำทาง

หมวดหมู่: android.intent.category.DEFAULT

การดําเนินการ:

  • Android Auto และ Android Automotive OS 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

ประกาศรูปแบบ Intent ต่อไปนี้ในไฟล์ Manifest ของแอปเพื่อให้ Google Assistant ทราบว่าแอปการนำทางของคุณรับ Intent การนำทางได้

รูปแบบของอุปกรณ์ทั้งหมดยกเว้น Android Auto และ Android Automotive OS:

<intent-filter>
  <action android:name="android.intent.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Android Auto และ Android Automotive OS:

<intent-filter>
  <action android:name="androidx.car.app.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

พารามิเตอร์ที่ระบุ

พารามิเตอร์ต่อไปนี้ควรมีอยู่ในข้อมูล Intent ของแอปการนำทางที่ระบุ

การค้นหาตำแหน่งหรือพิกัดทางภูมิศาสตร์

การค้นหาเกี่ยวกับความตั้งใจในการไปยังส่วนต่างๆ ทั้งหมดจะมีพารามิเตอร์ต่อไปนี้อย่างน้อย 1 รายการ หรือทั้ง 2 รายการ ทั้งนี้ขึ้นอยู่กับประเภทข้อมูลที่ขอ

  • การค้นหาตำแหน่ง

    หมายถึงสถานที่ที่ผู้ใช้พยายามไปยัง ใช้ข้อมูลนี้เพื่อแก้ไขปลายทางของผู้ใช้

    คีย์พารามิเตอร์: q
    ค่า: ปลายทางที่ผู้ใช้ค้นหา

    ตัวอย่าง: geo:0,0?q=Golden+Gate+Bridge
    การตีความ: ผู้ใช้ต้องการไปยังสะพานโกลเดนเกต

  • พิกัดทางภูมิศาสตร์ (ละติจูดและลองจิจูด)

    หมายถึงพิกัดที่เฉพาะเจาะจงซึ่งผู้ใช้ใช้สำหรับการนำทาง

    คีย์พารามิเตอร์: geo:lat,long
    ค่า: พิกัดที่ผู้ใช้ค้นหา

    ตัวอย่าง: geo:1.1,2.2?mode=w&intent=navigation
    การตีความ: ผู้ใช้ต้องการไปยังพิกัด (1.1, 2.2)

พารามิเตอร์ที่ไม่บังคับ

พารามิเตอร์ที่ไม่บังคับซึ่งระบุไว้ในข้อมูล Intent สําหรับแอปการนําทางจะอธิบายไว้ในส่วนนี้

Intent

กําหนดความตั้งใจของผู้ใช้ หากไม่ได้ตั้งค่าพารามิเตอร์นี้ ระบบจะถือว่าความตั้งใจเริ่มต้นของผู้ใช้คือ navigation

คีย์พารามิเตอร์: intent
ค่าที่เป็นไปได้:

  • navigation [ค่าเริ่มต้น] - แทนที่ปลายทางและเริ่มการนําทาง ใช้คำสั่งนี้สำหรับการค้นหา เช่น ไปยัง x
  • add_a_stop - เพิ่มจุดแวะเป็นจุดหมายถัดไปพร้อมกับจุดหมายก่อนหน้า ใช้คำสั่งนี้สำหรับการค้นหา เช่น เพิ่มจุดแวะพักที่ x
  • directions - แสดงเส้นทางโดยไม่ต้องเริ่มการนำทาง ใช้รูปแบบนี้สำหรับคำค้นหาอย่างเส้นทางไปยัง x

ตัวอย่าง: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop การตีความ: ผู้ใช้ต้องการเพิ่มป้ายจอดรถไปยัง Bellevue Square, Bellevue โดยมีพิกัดปัจจุบัน [47.6, -122.2]

หลีกเลี่ยง

กำหนดสิ่งที่ควรหลีกเลี่ยงในการนำทาง

คีย์พารามิเตอร์: avoid
ค่าที่เป็นไปได้:

  • f - เรือเฟอร์รี
  • h - ทางหลวง
  • t - ค่าผ่านทาง

ตัวอย่าง: geo:0,0?q=googleplex&avoid=tf
การตีความ: ผู้ใช้ต้องการไปยัง Googleplex โดยหลีกเลี่ยงการเรียกเก็บเงินค่าผ่านทางและเรือเฟอร์รี่

โหมดการเดินทาง

โหมดการเดินทางแสดงวิธีการขนส่งที่ผู้ใช้ระบุไว้ในคำค้นหา

คีย์พารามิเตอร์: mode
ค่าที่เป็นไปได้:

  • b - จักรยาน
  • d - ไดรฟ์
  • x - taxi
  • l - ยานพาหนะ 2 ล้อ
  • r - ขนส่งสาธารณะ
  • w - เดิน

ตัวอย่าง: geo:0,0?q=Googleplex&mode=r
การตีความ: ผู้ใช้ต้องการไปยัง Googleplex โดยใช้ระบบขนส่งสาธารณะ

รายการ

ใช้สำหรับบันทึกแหล่งที่มาของรายการ

ค่าที่เป็นไปได้: assistant

เช่น geo:47.61594547836694,-122.20373173098756?entry=assistant

จุดประสงค์ในการค้นหา

ใช้ความตั้งใจในการค้นหาเพื่อค้นหาข้อความค้นหาและแสดงผลการค้นหาหลายรายการตลอดเส้นทางขณะขับรถ

รูปแบบ Intent

คลาส Intent ใช้รูปแบบต่อไปนี้สำหรับ Intent ในการค้นหา

หมวดหมู่: android.intent.category.DEFAULT

การดําเนินการ: android.intent.action.VIEW

รูปแบบ: geo

เช่น geo:0,0?q=restaurants+nearby

ลักษณะการทํางานของแอปที่แนะนํา: เปิดรายการสถานที่ที่ตรงกับคําค้นหาของผู้ใช้

ตัวกรอง Intent ของไฟล์ Manifest

ประกาศรูปแบบ Intent ต่อไปนี้ในไฟล์ Manifest ของแอปเพื่อให้ Google Assistant ทราบว่าแอปการนำทางของคุณรับ Intent ค้นหาได้

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

พารามิเตอร์ที่ระบุ

พารามิเตอร์ต่อไปนี้ควรมีอยู่ในข้อมูลความตั้งใจค้นหาที่ระบุ

การค้นหาสถานที่

การค้นหาตำแหน่งคือตำแหน่งที่ผู้ใช้ค้นหาขณะขับรถ การค้นหานี้อาจไม่ถูกต้องหรืออยู่ตามเส้นทางการนำทางที่ใช้งานอยู่

คีย์พารามิเตอร์: q
ค่า: ข้อความค้นหาของผู้ใช้ ซึ่งอาจเป็นประเภทสถานที่ตั้ง เช่น ร้านกาแฟหรือวิทยาลัย แต่อาจมีตัวระบุปริมาณ เช่น -ใกล้ฉันหรือ-ที่มีคะแนนสูงสุด

ตัวอย่าง: geo:0,0?q=restaurants+nearby
การตีความ: ผู้ใช้ต้องการค้นหาร้านอาหารที่อยู่ใกล้เคียง

ความตั้งใจในการดําเนินการที่กำหนดเอง

ใช้ Intent ที่กําหนดเองสําหรับการดําเนินการที่กําหนดเอง เช่น การรายงานอุบัติเหตุและการสิ้นสุดการนําทาง ประเภทการดําเนินการหลักจะกําหนดโดยพารามิเตอร์การค้นหา act คุณสามารถตั้งค่าพารามิเตอร์เพิ่มเติมโดยขึ้นอยู่กับประเภทการดําเนินการ

รูปแบบ Intent

คลาส Intent ใช้รูปแบบต่อไปนี้สำหรับความตั้งใจในการดําเนินการที่กำหนดเอง

หมวดหมู่: android.intent.category.DEFAULT

การดําเนินการ: android.intent.action.VIEW

รูปแบบ: geo.action

เช่น geo.action:?act=report&accident_type=major

ตัวกรอง Intent ของไฟล์ Manifest

ประกาศรูปแบบ Intent ต่อไปนี้ในไฟล์ Manifest ของแอปเพื่อแจ้งให้ Google Assistant ทราบว่าแอปการนำทางของคุณรับ Intent การดําเนินการที่กำหนดเองได้

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo.action" />
</intent-filter>

พารามิเตอร์ที่ระบุ

พารามิเตอร์ต่อไปนี้ควรมีอยู่ในข้อมูล Intent การดำเนินการที่กำหนดเองที่ระบุ

ประเภทการดําเนินการ

ซึ่งจะกําหนดประเภทการดําเนินการแบบกําหนดเองที่ผู้ใช้ต้องการดําเนินการ

คีย์พารามิเตอร์: act

ตัวอย่าง

  • geo.action:?act=report_crash&accident_type=major
    การตีความ: ผู้ใช้ต้องการรายงานอุบัติเหตุร้ายแรง

  • geo.action:?act=mute
    การตีความ: ผู้ใช้ต้องการปิดเสียงคําแนะนําด้วยเสียง

  • geo.action:?act=exit_navigation
    การตีความ: ผู้ใช้ต้องการออกจากการนําทางปัจจุบัน

ลักษณะการทํางานของแอปที่แนะนํา: ดําเนินการตามคําขอในแอปการนําทาง หรือแสดงข้อความการดําเนินการที่ไม่รองรับ

รูปภาพต่อไปนี้แสดงตัวอย่างคู่คีย์-ค่าในคำค้นหาของคำตอบ

ขั้นตอนการส่งข้อมูล Intent ของการดำเนินการที่กำหนดเอง

รูปที่ 2 ขั้นตอนการส่งข้อมูล Intent ของการดำเนินการที่กำหนดเอง

คู่คีย์-ค่า:

"act": "report_crash"
"road_direction": other_side"

การดําเนินการที่กำหนดเองทุกรายการจะมีพารามิเตอร์ act เป็นคีย์เสมอ ในโค้ดตัวอย่างข้างต้น การดําเนินการบางอย่างอาจมีคู่คีย์-ค่าเพิ่มเติม ตัวอย่างเช่น act=report_crash รองรับคีย์เพิ่มเติมเหล่านี้ accident_type และ road_direction

คีย์ accident_type รองรับค่า 2 ค่า ได้แก่ minor และ major

ค่าที่เป็นไปได้

ตารางแสดงค่าที่เป็นไปได้ซึ่ง Google Assistant สามารถส่งเป็นการดำเนินการที่ผู้ใช้พยายามทำในแอปการนำทาง

ค่า คำอธิบาย คีย์พารามิเตอร์ที่ไม่บังคับ ค่าพารามิเตอร์ที่ไม่บังคับ
allow_ferries เปลี่ยนค่ากำหนดเส้นทางเพื่ออนุญาตเรือเฟอร์รี่
allow_highways เปลี่ยนค่ากำหนดเส้นทางเพื่ออนุญาตให้ใช้ทางหลวง
allow_tolls เปลี่ยนค่ากำหนดเส้นทางให้ใช้ทางด่วนได้
apply_electric_vehicle_connector_filter แสดงเฉพาะสถานที่ชาร์จ EV ที่ตรงกับหัวชาร์จของรถ
apply_electric_vehicle_fast_charging_filter แสดงเฉพาะสถานที่ชาร์จ EV ที่ใช้ที่ชาร์จเร็ว
apply_electric_vehicle_payment_filter แสดงเฉพาะสถานที่ชาร์จ EV ที่ต้องชำระเงิน
avoid_ferries เปลี่ยนค่ากำหนดเส้นทางเพื่อหลีกเลี่ยงเรือเฟอร์รี่
avoid_highways เปลี่ยนค่ากำหนดเส้นทางเพื่อหลีกเลี่ยงทางหลวง
avoid_tolls เปลี่ยนค่ากำหนดเส้นทางเพื่อหลีกเลี่ยงการจ่ายค่าผ่านทาง
clear_search_results ล้างผลการค้นหาบนแผนที่
distance_to_destination แสดงระยะทางไปยังจุดหมาย
distance_to_next_turn แสดงระยะทางถึงจุดเลี้ยวถัดไป
eta แสดงเวลาถึงโดยประมาณไปยังจุดหมาย
exit_navigation ออกหรือยกเลิกการนำทาง
follow_mode เปลี่ยนมุมมองแผนที่เป็นโหมดติดตาม
go_back กลับไปที่การดำเนินการก่อนหน้าบนแผนที่
hide_satellite เปลี่ยนการตั้งค่าแผนที่เพื่อซ่อนข้อมูลดาวเทียม
hide_traffic เปลี่ยนการตั้งค่าแผนที่เพื่อซ่อนข้อมูลการจราจร
mute ปิดการนำทางด้วยเสียง
query_current_road แสดงถนนที่ผู้ใช้กำลังขับอยู่
query_destination แสดงปลายทาง
query_next_turn แสดงทางเลี้ยวถัดไป
remove_electric_vehicle_connector_filter นำการกรองสถานที่ชาร์จ EV ที่ตรงกับหัวชาร์จของรถออก
remove_electric_vehicle_fast_charging_filter นำการกรองสถานที่ชาร์จ EV ที่เป็นที่ชาร์จเร็วออก
remove_electric_vehicle_payment_filter นำการกรองสถานที่ชาร์จ EV ที่ต้องชำระเงินออก
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
resume_navigation กลับมาที่การนำทาง
route_overview แสดงภาพรวมเส้นทาง
show_alternates แสดงเส้นทางอื่น
show_directions_list แสดงเส้นทางแบบเลี้ยวต่อเลี้ยว
show_satellite แสดงข้อมูลดาวเทียมบนแผนที่
show_traffic แสดงการจราจรบนแผนที่
time_to_destination แสดงเวลาถึงโดยประมาณไปยังจุดหมาย
time_to_next_turn แสดงเวลาถึงจุดเลี้ยวถัดไป
unmute เปิดการนำทางด้วยเสียง