类别 | 描述 | 相关API或类 |
蓝牙权限 | 应用需要申明的权限 | Manifest.permission.BLUETOOTH |
| | Manifest.permission.BLUETOOTH_ADMIN |
| | Manifest.permission.ACCESS_FINE_LOCATION (在某些情况下需要) |
初始化蓝牙适配器 | 获取和管理蓝牙适配器 | BluetoothAdapter.getDefaultAdapter() |
| 开启蓝牙 | BluetoothAdapter.enable() |
| 关闭蓝牙 | BluetoothAdapter.disable() |
查找设备 | 搜索周围可用的蓝牙设备 | BluetoothAdapter.startDiscovery() |
| 通过广播接收找到的设备 | BroadcastReceiver ACTION_FOUND |
创建连接 | 作为客户端连接到其他设备 | BluetoothDevice.createRfcommSocketToServiceRecord(UUID) |
| 作为服务器等待连接 | BluetoothAdapter.listenUsingRfcommWithServiceRecord() |
数据传输 | 通过Socket进行数据传输 | BluetoothSocket.getInputStream() |
| | BluetoothSocket.getOutputStream() |
管理连接 | 管理蓝牙连接的状态 | ConnectThread (自定义类) |
| 监听连接状态 | AcceptThread (自定义类) |
| 管理数据传输 | ConnectedThread (自定义类) |
UUID | 通用唯一识别码,用于配对和连接 | UUID.randomUUID() |
配对 | 管理蓝牙设备的配对过程 | BluetoothDevice.createBond() |
| 取消配对 | BluetoothDevice.removeBond() |
通信协议 | 常用的通信协议 | Bluetooth SPP (Serial Port Profile) |
| | Bluetooth OPP (Object Push Profile) |
| | Bluetooth A2DP (Advanced Audio Distribution Profile) |
| | Bluetooth AVRCP (Audio/Video Remote Control Profile) |
安全性 | 蓝牙通信的安全问题 | 使用BluetoothSocket 的加密通信 |
| | 通过setPin() 设置配对码 |