ภาพรวมบลูทูธ

แพลตฟอร์ม Android รองรับสแต็กเครือข่ายบลูทูธ ซึ่ง ช่วยให้อุปกรณ์แลกเปลี่ยนข้อมูลกับอุปกรณ์บลูทูธอื่นๆ แบบไร้สายได้ เฟรมเวิร์กของแอปช่วยให้เข้าถึงฟังก์ชันการทำงานของบลูทูธผ่าน API ของบลูทูธได้ API เหล่านี้ช่วยให้แอปเชื่อมต่อกับอุปกรณ์บลูทูธอื่นๆ ได้ ซึ่งจะช่วยให้ใช้ฟีเจอร์ไร้สายแบบจุดต่อจุดและแบบหลายจุดได้

แอปสามารถทำสิ่งต่อไปนี้ได้โดยใช้ Bluetooth API

  • สแกนหาอุปกรณ์บลูทูธอื่นๆ
  • ค้นหาอุปกรณ์บลูทูธที่จับคู่แล้วในอะแดปเตอร์บลูทูธในเครื่อง
  • สร้างแชแนล RFCOMM
  • เชื่อมต่อกับอุปกรณ์อื่นๆ ผ่านการค้นพบบริการ
  • โอนข้อมูลไปยังและจากอุปกรณ์อื่นๆ
  • จัดการการเชื่อมต่อหลายรายการ

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

เอกสารนี้อธิบายโปรไฟล์บลูทูธต่างๆ และอธิบายวิธีใช้ Bluetooth API เพื่อทํางานหลัก 4 อย่างที่จําเป็นต่อการสื่อสารโดยใช้บลูทูธ

  • การตั้งค่าบลูทูธ
  • ค้นหาอุปกรณ์ที่จับคู่แล้วหรือพร้อมใช้งานในพื้นที่
  • เชื่อมต่ออุปกรณ์
  • การโอนข้อมูลระหว่างอุปกรณ์

หากต้องการดูตัวอย่างการใช้ Bluetooth API โปรดดูแอปตัวอย่างแชทผ่านบลูทูธ

ข้อมูลเบื้องต้น

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

การใช้ Bluetooth API ต้องประกาศสิทธิ์หลายรายการในไฟล์ Manifest เมื่อแอปได้รับสิทธิ์ใช้บลูทูธแล้ว แอปจะต้องเข้าถึง BluetoothAdapter และตรวจสอบว่าอุปกรณ์มีบลูทูธหรือไม่ หากมีบลูทูธ คุณจะเชื่อมต่อได้โดยทำตาม 3 ขั้นตอนต่อไปนี้

อุปกรณ์บางเครื่องใช้โปรไฟล์บลูทูธที่เฉพาะเจาะจงซึ่งประกาศข้อมูล ที่อุปกรณ์นั้นให้

คลาสและอินเทอร์เฟซที่สำคัญ

API บลูทูธทั้งหมดจะอยู่ในแพ็กเกจ android.bluetooth ต่อไปนี้คือคลาสและอินเทอร์เฟซที่คุณต้องใช้เพื่อสร้างการเชื่อมต่อ Bluetooth

BluetoothAdapter
แสดงถึงอะแดปเตอร์บลูทูธในเครื่อง (วิทยุบลูทูธ) BluetoothAdapter คือจุดแรกเข้าสำหรับการโต้ตอบผ่านบลูทูธทั้งหมด เมื่อใช้ ฟีเจอร์นี้ คุณจะค้นพบอุปกรณ์บลูทูธอื่นๆ สอบถามรายการอุปกรณ์ที่เชื่อมต่อ (จับคู่) สร้างอินสแตนซ์ของ BluetoothDevice โดยใช้ที่อยู่ MAC ที่รู้จัก และสร้าง BluetoothServerSocket เพื่อฟังการสื่อสารจากอุปกรณ์อื่นๆ ได้
BluetoothDevice
แสดงถึงอุปกรณ์บลูทูธระยะไกล ใช้เพื่อขอการเชื่อมต่อกับอุปกรณ์ระยะไกลผ่าน BluetoothSocket หรือค้นหาข้อมูลเกี่ยวกับอุปกรณ์ เช่น ชื่อ ที่อยู่ คลาส และสถานะการจับคู่
BluetoothSocket
แสดงอินเทอร์เฟซสำหรับซ็อกเก็ตบลูทูธ (คล้ายกับ TCP Socket) ซึ่งเป็นจุดเชื่อมต่อที่ อนุญาตให้แอปแลกเปลี่ยนข้อมูลกับอุปกรณ์บลูทูธอื่นโดยใช้ InputStream และ OutputStream
BluetoothServerSocket
แสดงถึงซ็อกเก็ตเซิร์ฟเวอร์ที่เปิดอยู่ซึ่งรอรับคำขอขาเข้า (คล้ายกับ TCP ServerSocket) หากต้องการเชื่อมต่ออุปกรณ์ 2 เครื่อง อุปกรณ์เครื่องหนึ่งต้องเปิดซ็อกเก็ตเซิร์ฟเวอร์ด้วยคลาสนี้ เมื่ออุปกรณ์บลูทูธระยะไกลส่งคำขอเชื่อมต่อมายังอุปกรณ์นี้ อุปกรณ์จะยอมรับการเชื่อมต่อ จากนั้นจะส่ง BluetoothSocket ที่เชื่อมต่อแล้วกลับไป
BluetoothClass
อธิบายลักษณะและความสามารถทั่วไปของอุปกรณ์บลูทูธ นี่คือชุดพร็อพเพอร์ตี้แบบอ่านอย่างเดียวที่กำหนดคลาสและ บริการของอุปกรณ์ แม้ว่าข้อมูลนี้จะให้คำแนะนำที่เป็นประโยชน์เกี่ยวกับประเภทของอุปกรณ์ แต่แอตทริบิวต์ของคลาสนี้ไม่ได้อธิบายโปรไฟล์และบริการบลูทูธทั้งหมดที่อุปกรณ์รองรับเสมอไป
BluetoothProfile
อินเทอร์เฟซที่แสดงโปรไฟล์บลูทูธ โปรไฟล์บลูทูธคือ ข้อกำหนดอินเทอร์เฟซไร้สายสำหรับการสื่อสารที่ใช้บลูทูธระหว่าง อุปกรณ์ ตัวอย่างเช่น โปรไฟล์แฮนด์ฟรี ดูข้อมูลเพิ่มเติมเกี่ยวกับ โปรไฟล์ได้ที่โปรไฟล์บลูทูธ
BluetoothHeadset
รองรับการใช้ชุดหูฟังบลูทูธกับโทรศัพท์มือถือ ซึ่งรวมถึงทั้งโปรไฟล์ชุดหูฟังบลูทูธและโปรไฟล์แฮนด์ฟรี (v1.5)
BluetoothA2dp
กำหนดวิธีสตรีมเสียงคุณภาพสูงจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่งผ่านการเชื่อมต่อบลูทูธโดยใช้โปรไฟล์การกระจายเสียงขั้นสูง (A2DP)
BluetoothHealth
แสดงถึงพร็อกซีโปรไฟล์อุปกรณ์สุขภาพที่ควบคุมบริการบลูทูธ
BluetoothHealthCallback
คลาสแบบนามธรรมที่คุณใช้เพื่อใช้BluetoothHealthการเรียกกลับ คุณ ต้องขยายคลาสนี้และใช้เมธอดเรียกกลับเพื่อรับข้อมูลอัปเดต เกี่ยวกับการเปลี่ยนแปลงสถานะการลงทะเบียนของแอปและสถานะช่องสัญญาณบลูทูธ
BluetoothHealthAppConfiguration
แสดงการกำหนดค่าแอปที่แอปสุขภาพบลูทูธของบุคคลที่สาม ลงทะเบียนเพื่อสื่อสารกับอุปกรณ์สุขภาพบลูทูธระยะไกล
BluetoothProfile.ServiceListener
อินเทอร์เฟซที่แจ้งเตือนไคลเอ็นต์BluetoothProfileการสื่อสารระหว่างกระบวนการ (IPC) เมื่อเชื่อมต่อหรือยกเลิกการเชื่อมต่อกับบริการภายใน ที่เรียกใช้โปรไฟล์หนึ่งๆ