Bluedroid
読み:ブルードロイド
外語:Bluedroid
Android
で使われている
Bluetooth
プロトコルスタックの実装。
目次
概要
特徴
機能
対応
対応プロトコル
対応伝統プロファイル
対応GATTベースプロファイル
未対応
主な未対応プロトコル
主な未対応プロファイル
概要
Android 4.2
(
Jelly Bean
)より、従来の
BlueZ
に代えて正式採用された。
Bluedroidは、Broadcomにより開発され、Apache License 2.0で提供されている。
Androidのソースでは、
external/bluetooth/bluedroid
以下にソースが一式存在する。
特徴
機能
BlueZと同様、BSDソケットインターフェイス準拠のAPIを提供し、UNIXなどの他の実装と同様に、Bluetoothをファイルのように扱うことができる。
実装は複数のレイヤーに分けられているが、それぞれについて、ソケットを通じ、各層においてbind、connect、send、recvなどの操作が利用でき、また各層に対して
ioctl
、setsockopt、getsockoptなどによる制御が利用できる。
初めて登場したAndroid 4.2の時点では、Android 4.1のBlueZにあったプロファイルの幾つかは実装されていなかったが、Android 4.4(KitKat)の頃になると、殆どのプロファイルが実装されているようである。
対応
KitKat
の段階で、対応していそうなプロトコルとプロファイルは次の通り(ABC順)。
主要なプロトコルやプロファイルは網羅しているようだが、ソースを概観して判断したものなので、実際の対応の有無や対応の品質は不明。また、これ以外にも対応するものがある可能性がある。
対応プロトコル
ATT (Attribute Protocol)
AVCTP
AVDTP
BNEP (Bluetooth Network Encapsulation Protocol)
BTM (Bluetooth Manager)
L2CAP
MCAP (Multi-Channel Adaptation Protocol)
OBEX
RFCOMM
SDP
SMP
対応伝統プロファイル
A2DP
AVRCP
BIP (Basic Imaging Profile)
BPP (Basic Printing Profile)
CTP (Cordless Telephony Profile)
DI (Device Identification Profile)
DUN
(Dial-up networking profile)
FTP (File Transfer Profile)
GAP
(Generic Access Profile)
GATT
GOEP
HCRP
HDP
(Health Device Profile)
HFP
(Hands-Free Profile)
HIDP
HSP
(Headset Profile)
ICP (Intercom Profile)
LAP (LAN Access Profile)
MAP
(Message Access Profile)
OPP
(Object Push Profile)
PAN
NAP/GN/PANU (Personal Area Networking Profile)
PBAP
(Phone Book Access Profile)
SAP (SIM Access Profile)
SPP
(Serial Port Profile)
SYNCH (Synchronization Profile)
VDP (Video Distribution Profile)
対応GATTベースプロファイル
プロトコルATTと、プロファイルGATTには対応しているが、それに準じたGATTベースプロファイルについては公式に実装されている形跡がない。
未対応
KitKatの段階で、対応していなそうなもの。
主な未対応プロトコル
A2MP (AMP Manager Protocol)
IrDA (InfraRed Data Association)
TCP (Telephony Control Protocol)
主な未対応プロファイル
GAVDP
GNSS (Global Navigation Satellite System Profile)
SDAP
(Service Discovery Application Profile)
再検索