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

แพลตฟอร์ม 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) เมื่อเชื่อมต่อหรือยกเลิกการเชื่อมต่อกับบริการภายใน ที่เรียกใช้โปรไฟล์หนึ่งๆ