Google Assistant ใช้ Intent 3 รูปแบบที่แอปการนำทางของคุณรองรับ
คุณสามารถทำให้แอปทำงานร่วมกันได้และผสานรวมแอปกับ Google Assistant โดยประกาศตัวกรอง Intent ที่แสดงรายละเอียดในหน้านี้ในไฟล์ Manifest ของแอป
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Intent ได้ที่
Intent
คลาส Intent ของแอปการนําทางด้วย Assistant รองรับ 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
 การตีความ: ผู้ใช้ต้องการออกจากการนําทางปัจจุบัน
ลักษณะการทํางานของแอปที่แนะนํา: ดําเนินการตามคําขอในแอปการนําทาง หรือแสดงข้อความการดําเนินการที่ไม่รองรับ
รูปภาพต่อไปนี้แสดงตัวอย่างคู่คีย์-ค่าในคำค้นหาของคำตอบ
รูปที่ 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 | เปิดการนำทางด้วยเสียง | 
