การเชื่อมต่อกับอุปกรณ์ที่อยู่ใกล้เคียงเป็น API เครือข่ายแบบเพียร์ทูเพียร์ที่ช่วยให้แอปสามารถค้นหา เชื่อมต่อ และแลกเปลี่ยนข้อมูลกับอุปกรณ์ที่อยู่ใกล้เคียงแบบเรียลไทม์ได้อย่างง่ายดาย ไม่ว่าจะมีการเชื่อมต่อเครือข่ายหรือไม่ก็ตาม
ตัวอย่างกรณีการใช้งานมีดังนี้
- ไวท์บอร์ดสำหรับการทำงานร่วมกัน: จดไอเดียร่วมกับผู้เข้าร่วมที่อยู่ใกล้เคียงบนไวท์บอร์ดเสมือนจริงที่แชร์
- การเล่นหลายคนในเครื่องเดียว: ตั้งค่าเกมแบบผู้เล่นหลายคนและเชิญผู้ใช้คนอื่นๆ ในบริเวณใกล้เคียงให้เข้าร่วม
- การเล่นเกมแบบหลายหน้าจอ: ใช้โทรศัพท์หรือแท็บเล็ตเป็นเกมคอนโทรลเลอร์เพื่อเล่นเกมที่แสดงบนอุปกรณ์ Android หน้าจอขนาดใหญ่ที่อยู่ใกล้เคียง เช่น Android TV
- การโอนไฟล์แบบออฟไลน์: แชร์รูปภาพ วิดีโอ หรือข้อมูลประเภทอื่นๆ ได้อย่างรวดเร็วโดยไม่ต้องเชื่อมต่อเครือข่าย
บทนำ
Nearby Connections ช่วยให้สามารถกระจายข้อมูล ค้นพบ และเชื่อมต่อระหว่างอุปกรณ์ที่อยู่ใกล้เคียงในลักษณะเพียร์ทูเพียร์แบบออฟไลน์โดยสมบูรณ์ การเชื่อมต่อระหว่างอุปกรณ์ต่างๆ มีแบนด์วิดท์สูง เวลาในการตอบสนองต่ำ และเข้ารหัสอย่างสมบูรณ์เพื่อให้โอนข้อมูลได้อย่างรวดเร็วและปลอดภัย
เป้าหมายหลักของ API นี้คือการมอบแพลตฟอร์มที่เรียบง่าย เชื่อถือได้ และมีประสิทธิภาพ เบื้องหลังการทำงาน API นี้ใช้เทคโนโลยีบลูทูธ, BLE และ Wi-Fi ร่วมกัน โดยใช้ประโยชน์จากจุดแข็งของแต่ละเทคโนโลยีพร้อมกับหลีกเลี่ยงจุดอ่อนของแต่ละเทคโนโลยี ซึ่งจะช่วยลดความซับซ้อนของบลูทูธและ Wi-Fi ในแพลตฟอร์มและเวอร์ชันระบบปฏิบัติการต่างๆ ได้อย่างมีประสิทธิภาพ ช่วยให้นักพัฒนาแอปมุ่งเน้นไปที่ฟีเจอร์ที่สำคัญต่อผู้ใช้ได้
ภาพรวม API
การใช้งาน API แบ่งออกเป็น 2 ระยะ ได้แก่ ก่อนการเชื่อมต่อและหลังการเชื่อมต่อ
ในระยะก่อนการเชื่อมต่อ ผู้โฆษณาจะโฆษณาตนเอง ขณะที่ผู้ค้นพบจะค้นพบผู้โฆษณาที่อยู่ใกล้เคียงและส่งคำขอเชื่อมต่อ คำขอเชื่อมต่อจากผู้ค้นพบไปยังผู้ลงโฆษณาจะเริ่มต้นขั้นตอนการตรวจสอบสิทธิ์แบบสมมาตร ซึ่งส่งผลให้ทั้ง 2 ฝ่ายยอมรับ (หรือปฏิเสธ) คำขอเชื่อมต่ออย่างเป็นอิสระจากกัน
หลังจากที่ทั้ง 2 ฝ่ายยอมรับคำขอเชื่อมต่อแล้ว ระบบจะถือว่าการเชื่อมต่อเสร็จสมบูรณ์และอุปกรณ์จะเข้าสู่ระยะหลังการเชื่อมต่อ ซึ่งทั้ง 2 ฝ่ายจะแลกเปลี่ยนข้อมูลกันได้
การโฆษณาและการค้นพบ
ผู้ลงโฆษณาจะปรากฏต่อผู้ค้นพบรายอื่นๆ และผู้ค้นพบจะได้รับการแจ้งเตือนเมื่อพบผู้ลงโฆษณารายใหม่หรือเมื่อผู้ลงโฆษณาหายไป
กำลังสร้างการเชื่อมต่อ
เมื่อผู้ค้นพบต้องการเชื่อมต่อกับผู้โฆษณาที่อยู่ใกล้เคียง ผู้ค้นพบจะขอการเชื่อมต่อได้
ทั้ง 2 ฝ่ายจะได้รับแจ้งเกี่ยวกับกระบวนการเริ่มต้นการเชื่อมต่อ และทั้ง 2 ฝ่ายจะมีโอกาสยอมรับหรือปฏิเสธการเชื่อมต่อ
เมื่อทั้ง 2 ฝ่ายตอบกลับแล้ว แต่ละฝ่ายจะได้รับแจ้งผลลัพธ์ หากทั้ง 2 ฝ่ายยอมรับการเชื่อมต่อ ระบบจะถือว่าการเชื่อมต่อเสร็จสมบูรณ์ และการโอนข้อมูลจะเริ่มขึ้นได้
การแลกเปลี่ยนข้อมูล
หลังจากสร้างการเชื่อมต่อแล้ว การใช้งาน API เพิ่มเติมจะเป็นแบบสมมาตร ดังนั้นจึงไม่มีความแตกต่างระหว่างผู้โฆษณาและผู้ค้นพบอีกต่อไป
ตอนนี้ทั้ง 2 ฝ่ายจะแลกเปลี่ยนข้อมูลกันได้ เพย์โหลดที่รองรับมี 3 ประเภทดังนี้
- ไบต์: อาร์เรย์ไบต์จำกัดไว้ที่ 32k ซึ่งเหมาะสำหรับการส่งสิ่งต่างๆ เช่น ข้อมูลเมตาหรือข้อความควบคุม
- ไฟล์: ไฟล์ทุกขนาด โดยจะโอนจากแอปไปยังอินเทอร์เฟซเครือข่ายโดยมีการคัดลอกข้ามขอบเขตกระบวนการน้อยที่สุด
- สตรีม: สตรีมข้อมูลที่สร้างขึ้นแบบเรียลไทม์ เช่น ในกรณีของเสียง/วิดีโอที่บันทึกไว้ โดยไม่ทราบขนาดสุดท้ายล่วงหน้า
ผู้รับจะได้รับการแจ้งเตือนเกี่ยวกับข้อมูลใหม่ที่เข้ามา รวมถึงการอัปเดตความคืบหน้า การยกเลิก หรือความล้มเหลว
การเชื่อมต่อที่สร้างขึ้นเป็นแบบ Full-duplex ซึ่งหมายความว่าผู้โฆษณาและผู้ค้นพบสามารถส่งและรับข้อมูลพร้อมกันได้
การเก็บรวบรวมข้อมูล
เมื่อใช้ SDK ของ Nearby ในบริการ Google Play ระบบจะรวบรวมข้อมูลวิเคราะห์การใช้งานเพื่อปรับปรุงประสบการณ์การใช้งาน
- เมตริกประสิทธิภาพ: ระบบจะรวบรวมเวลาในการตอบสนอง ความน่าเชื่อถือ และอัตราการส่งผ่านข้อมูลของการค้นหาและการเชื่อมต่อเมื่อสแกนหาและเชื่อมต่อกับอุปกรณ์โดยใช้ Nearby SDK
- ข้อมูลอุปกรณ์: ระบบจะรวบรวมรุ่นอุปกรณ์ ประเทศ เวอร์ชันบิลด์ และชื่อแพ็กเกจแอปพลิเคชัน และเชื่อมโยงกับเมตริกประสิทธิภาพเพื่อระบุส่วนต่างๆ ของภูมิภาคและอุปกรณ์ที่เฉพาะเจาะจง
ผู้ใช้ปลายทางสามารถอนุญาตหรือปฏิเสธการเก็บรวบรวมข้อมูลนี้ได้โดยไปที่การตั้งค่า > Google > การใช้งานและการวินิจฉัย