Ringkasan Bluetooth
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Platform Android menyertakan dukungan untuk stack jaringan Bluetooth, yang
memungkinkan perangkat bertukar data secara nirkabel dengan perangkat Bluetooth lainnya. Framework
aplikasi menyediakan akses ke fungsi Bluetooth melalui Bluetooth
API. API ini memungkinkan aplikasi terhubung ke perangkat Bluetooth lain, yang mengaktifkan
fitur nirkabel point-to-point dan multipoint.
Dengan Bluetooth API, aplikasi dapat melakukan hal berikut:
- Pindai perangkat Bluetooth lain.
- Melakukan kueri adaptor Bluetooth lokal untuk perangkat Bluetooth yang disambungkan.
- Membuat saluran RFCOMM.
- Menghubungkan ke perangkat lain melalui penemuan layanan.
- Mentransfer data ke dan dari perangkat lain.
- Mengelola beberapa koneksi.
Topik ini berfokus pada Bluetooth Klasik. Bluetooth Klasik adalah pilihan yang tepat
untuk operasi yang menggunakan baterai lebih intensif, yang mencakup streaming dan komunikasi
antar-perangkat. Untuk perangkat Bluetooth dengan persyaratan daya rendah, pertimbangkan
untuk menggunakan koneksi Bluetooth Hemat Energi.
Dokumentasi ini menjelaskan berbagai profil Bluetooth
dan menjelaskan cara
menggunakan Bluetooth API untuk menyelesaikan empat tugas utama yang diperlukan untuk
berkomunikasi menggunakan Bluetooth:
- Menyiapkan Bluetooth.
- Menemukan perangkat yang disambungkan atau tersedia di area lokal.
- Menghubungkan perangkat.
- Mentransfer data antar-perangkat.
Untuk mendemonstrasikan penggunaan Bluetooth API, lihat aplikasi contoh
Bluetooth Chat.
Dasar-dasar
Agar perangkat berkemampuan Bluetooth dapat mengirimkan data satu sama lain, perangkat tersebut harus
membentuk saluran komunikasi terlebih dahulu menggunakan proses penyambungan. Satu perangkat, perangkat yang dapat ditemukan, membuatnya tersedia untuk permintaan koneksi masuk.
Perangkat lain menemukan perangkat yang dapat ditemukan menggunakan proses penemuan layanan.
Setelah perangkat yang dapat ditemukan menerima permintaan penyambungan, kedua perangkat tersebut
menyelesaikan proses ikatan yang memungkinkan mereka bertukar kunci keamanan. Perangkat
menyimpan kunci ini dalam cache untuk digunakan nanti. Setelah proses penyambungan dan ikatan
selesai, kedua perangkat tersebut bertukar informasi. Setelah sesi selesai,
perangkat yang memulai permintaan penyambungan akan merilis saluran yang
telah menautkannya ke perangkat yang dapat ditemukan. Namun, kedua perangkat tetap terikat, sehingga
dapat terhubung kembali secara otomatis selama sesi mendatang selama berada
dalam jangkauan satu sama lain dan tidak ada perangkat yang menghapus ikatannya.
Penggunaan Bluetooth API memerlukan
deklarasi beberapa izin
dalam file manifes Anda. Setelah aplikasi Anda memiliki izin untuk menggunakan Bluetooth, aplikasi Anda
perlu mengakses
BluetoothAdapter
dan
menentukan apakah Bluetooth tersedia di perangkat.
Jika Bluetooth tersedia, ada tiga langkah untuk membuat koneksi:
Perangkat tertentu menggunakan profil Bluetooth tertentu yang mendeklarasikan data
yang disediakannya.
Class dan antarmuka utama
Semua Bluetooth API tersedia dalam
paket android.bluetooth
.
Berikut adalah class dan antarmuka yang diperlukan untuk membuat
koneksi Bluetooth:
BluetoothAdapter
- Merepresentasikan adaptor Bluetooth lokal (radio Bluetooth).
BluetoothAdapter
adalah titik entri untuk semua interaksi Bluetooth. Dengan
ini, Anda dapat menemukan perangkat Bluetooth lainnya, membuat kueri daftar perangkat
terikat (berpasangan), membuat instance
BluetoothDevice
menggunakan alamat MAC yang dikenal, dan membuat
BluetoothServerSocket
untuk memproses komunikasi dari perangkat lain.
BluetoothDevice
- Merepresentasikan perangkat Bluetooth jarak jauh. Gunakan metode ini untuk meminta koneksi dengan
perangkat jarak jauh melalui
BluetoothSocket
atau mengkueri informasi tentang
perangkat seperti nama, alamat, class, dan status ikatan.
BluetoothSocket
- Merepresentasikan antarmuka untuk soket Bluetooth (mirip dengan TCP
Socket
). Ini adalah titik koneksi yang
memungkinkan aplikasi bertukar data dengan perangkat Bluetooth lain menggunakan
InputStream
dan
OutputStream
.
BluetoothServerSocket
- Merepresentasikan soket server terbuka yang memproses permintaan masuk (mirip
dengan
ServerSocket
TCP). Agar dapat
menghubungkan dua perangkat, satu perangkat harus membuka soket server dengan class
ini. Saat perangkat Bluetooth jarak jauh membuat permintaan koneksi ke perangkat
ini, perangkat akan menerima koneksi tersebut, lalu menampilkan BluetoothSocket
yang terhubung.
BluetoothClass
- Menjelaskan karakteristik umum dan kemampuan perangkat Bluetooth.
Ini adalah kumpulan properti hanya baca yang menentukan class dan layanan perangkat. Meskipun informasi ini memberikan petunjuk yang berguna mengenai
jenis perangkat, atribut class ini tidak selalu menjelaskan semua
profil dan layanan Bluetooth yang didukung perangkat.
BluetoothProfile
- Antarmuka yang merepresentasikan profil Bluetooth. Profil Bluetooth adalah
spesifikasi antarmuka nirkabel untuk komunikasi berbasis Bluetooth antar-perangkat. Contohnya adalah profil Hands-Free. Untuk diskusi selengkapnya tentang
profil, lihat profil Bluetooth.
BluetoothHeadset
- Menyediakan dukungan untuk headset Bluetooth yang akan digunakan dengan ponsel. Ini
mencakup profil Bluetooth Headset dan profil Hands-Free (v1.5).
BluetoothA2dp
- Menentukan cara streaming audio berkualitas tinggi dapat di-streaming dari satu perangkat ke perangkat lainnya melalui
koneksi Bluetooth menggunakan Advanced Audio Distribution Profile (A2DP).
BluetoothHealth
- Merepresentasikan proxy Health Device Profile yang mengontrol layanan Bluetooth.
BluetoothHealthCallback
- Class abstrak yang Anda gunakan untuk menerapkan callback
BluetoothHealth
. Anda
harus memperluas class ini dan menerapkan metode callback untuk menerima update
tentang perubahan status pendaftaran aplikasi dan status saluran
Bluetooth.
BluetoothHealthAppConfiguration
- Merepresentasikan konfigurasi aplikasi yang didaftarkan aplikasi pihak ketiga
Bluetooth Health untuk berkomunikasi dengan perangkat kesehatan Bluetooth jarak jauh.
BluetoothProfile.ServiceListener
- Antarmuka yang memberi tahu klien komunikasi antarproses (IPC)
BluetoothProfile
saat mereka telah terhubung atau terputus dari layanan internal
yang menjalankan profil tertentu.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-26 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-26 UTC."],[],[],null,["# Bluetooth overview\n\nThe Android platform includes support for the Bluetooth network stack, which\nallows a device to wirelessly exchange data with other Bluetooth devices. The\napp framework provides access to the Bluetooth functionality through Bluetooth\nAPIs. These APIs let apps connect to other Bluetooth devices, enabling\npoint-to-point and multipoint wireless features.\n\nUsing the Bluetooth APIs, an app can perform the following:\n\n- Scan for other Bluetooth devices.\n- Query the local Bluetooth adapter for paired Bluetooth devices.\n- Establish RFCOMM channels.\n- Connect to other devices through service discovery.\n- Transfer data to and from other devices.\n- Manage multiple connections.\n\nThis topic focuses on *Classic Bluetooth* . Classic Bluetooth is the right choice\nfor more battery-intensive operations, which include streaming and communicating\nbetween devices. For Bluetooth devices with low power requirements, consider\nusing [Bluetooth Low Energy](/develop/connectivity/bluetooth/ble-overview)\nconnections.\n\nThis documentation describes different Bluetooth\n[profiles](/develop/connectivity/bluetooth/profiles) and explains how to\nuse the Bluetooth APIs to accomplish the four major tasks necessary to\ncommunicate using Bluetooth:\n\n- Setting up Bluetooth.\n- Finding devices that are either paired or available in the local area.\n- Connecting devices.\n- Transferring data between devices.\n\nFor a demonstration of using the Bluetooth APIs, see the [Bluetooth Chat sample\napp](https://github.com/android/connectivity-samples/tree/master/BluetoothChat).\n\nThe basics\n----------\n\nFor Bluetooth-enabled devices to transmit data between each other, they must\nfirst form a channel of communication using a pairing process. One device, a\ndiscoverable device, makes itself available for incoming connection requests.\nAnother device finds the discoverable device using a service discovery process.\nAfter the discoverable device accepts the pairing request, the two devices\ncomplete a bonding process in which they exchange security keys. The devices\ncache these keys for later use. After the pairing and bonding processes are\ncomplete, the two devices exchange information. When the session is complete,\nthe device that initiated the pairing request releases the channel that had\nlinked it to the discoverable device. The two devices remain bonded, however, so\nthey can reconnect automatically during a future session as long as they're in\nrange of each other and neither device has removed the bond.\n\nUse of the Bluetooth APIs requires\n[declaring several permissions](/develop/connectivity/bluetooth/bt-permissions#declare)\nin your manifest file. Once your app has permission to use Bluetooth, your app\nneeds to access the\n[`BluetoothAdapter`](/reference/android/bluetooth/BluetoothAdapter) and\n[determine if Bluetooth is available on the device](/develop/connectivity/bluetooth/setup).\nIf Bluetooth is available, there are three steps to make a connection:\n\n- [Find nearby Bluetooth\n devices](/develop/connectivity/bluetooth/find-bluetooth-devices), either devices that are already paired or new ones.\n- [Connect to a Bluetooth\n device](/develop/connectivity/bluetooth/connect-bluetooth-devices).\n- [Transfer data with the connected\n device](/develop/connectivity/bluetooth/transfer-data).\n\nCertain devices use a specific [Bluetooth\nprofile](/develop/connectivity/bluetooth/profiles) that declares the data\nit provides.\n\nKey classes and interfaces\n--------------------------\n\nAll of the Bluetooth APIs are available in the\n[`android.bluetooth`](/reference/android/bluetooth/package-summary) package.\nThe following are the classes and interfaces you need in order to create\nBluetooth connections:\n\n[`BluetoothAdapter`](/reference/android/bluetooth/BluetoothAdapter)\n: Represents the local Bluetooth adapter (Bluetooth radio). The\n `BluetoothAdapter` is the entry-point for all Bluetooth interaction. Using\n this, you can discover other Bluetooth devices, query a list of bonded\n (paired) devices, instantiate a\n `BluetoothDevice` using a known MAC address, and create a\n `BluetoothServerSocket` to listen for communications from other devices.\n\n[`BluetoothDevice`](/reference/android/bluetooth/BluetoothDevice)\n: Represents a remote Bluetooth device. Use this to request a connection with a\n remote device through a `BluetoothSocket` or query information about the\n device such as its name, address, class, and bonding state.\n\n[`BluetoothSocket`](/reference/android/bluetooth/BluetoothSocket)\n: Represents the interface for a Bluetooth socket (similar to a TCP\n [`Socket`](/reference/java/net/Socket)). This is the connection point that\n allows an app to exchange data with another Bluetooth device using\n [`InputStream`](/reference/java/io/InputStream) and\n [`OutputStream`](/reference/java/io/OutputStream).\n\n[`BluetoothServerSocket`](/reference/android/bluetooth/BluetoothServerSocket)\n: Represents an open server socket that listens for incoming requests (similar\n to a TCP [`ServerSocket`](/reference/java/net/ServerSocket)). In order to\n connect two devices, one device must open a server socket with this\n class. When a remote Bluetooth device makes a connection request to this\n device, the device accepts the connection and then returns a connected\n `BluetoothSocket`.\n\n[`BluetoothClass`](/reference/android/bluetooth/BluetoothClass)\n: Describes the general characteristics and capabilities of a Bluetooth device.\n This is a read-only set of properties that defines the device's classes and\n services. Although this information provides a useful hint regarding a\n device's type, the attributes of this class don't necessarily describe all\n Bluetooth profiles and services that the device supports.\n\n[`BluetoothProfile`](/reference/android/bluetooth/BluetoothProfile)\n: An interface that represents a Bluetooth profile. A Bluetooth profile is a\n wireless interface specification for Bluetooth-based communication between\n devices. An example is the Hands-Free profile. For more discussion of\n profiles, see [Bluetooth profiles](/develop/connectivity/bluetooth/profiles).\n\n[`BluetoothHeadset`](/reference/android/bluetooth/BluetoothHeadset)\n: Provides support for Bluetooth headsets to be used with mobile phones. This\n includes both the Bluetooth Headset profile and the Hands-Free (v1.5) profile.\n\n[`BluetoothA2dp`](/reference/android/bluetooth/BluetoothA2dp)\n: Defines how high-quality audio can be streamed from one device to another over\n a Bluetooth connection using the Advanced Audio Distribution Profile (A2DP).\n\n[`BluetoothHealth`](/reference/android/bluetooth/BluetoothHealth)\n: Represents a Health Device Profile proxy that controls the Bluetooth service.\n\n[`BluetoothHealthCallback`](/reference/android/bluetooth/BluetoothHealthCallback)\n: An abstract class that you use to implement `BluetoothHealth` callbacks. You\n must extend this class and implement the callback methods to receive updates\n about changes in the app's registration state and Bluetooth channel\n state.\n\n[`BluetoothHealthAppConfiguration`](/reference/android/bluetooth/BluetoothHealthAppConfiguration)\n: Represents an app configuration that the Bluetooth Health third-party\n app registers to communicate with a remote Bluetooth health device.\n\n[`BluetoothProfile.ServiceListener`](/reference/android/bluetooth/BluetoothProfile.ServiceListener)\n: An interface that notifies `BluetoothProfile` interprocess communication (IPC)\n clients when they have been connected to or disconnected from the internal\n service that runs a particular profile."]]