Bluetoothで対応しているプロファイルについてのアレコレまで、ググって調べたことのまとめ。注意:この記事は全くの無知な状態から調べながら書いたので、(とくに序盤に)多分に誤解・語弊のある言い回しが含まれております。通信しようとする機器同士が同じプロファイルを持っている場合に限り、そのプロファイルの機能を利用した通信をおこなえる。プロファイルは、各機器がBluetoothを使って何ができるかを示したもので、機器同士の接続性が一目でわかるようになるものと期待された。現実には、Bluetooth応用分野の拡大に伴って急激にプロファイルが増加したこともあり、以下のような問題が目立つ。同じような機能のプロファイルが乱立気味であり、利用可能な、あるいは目的に適したプロファイルがわかりにくい。対応プロファイルの少ない古い製品の陳腐化を助長し、しかもアップグレードが提供されないことが多いので買い替えを余儀なくされる。「同じBluetoothなのにプロファイルの有無が原因でつながらない」という印象を与えやすい。あるBluetoothは、さまざまな情報機器が対応し、データを交換することができる。その際、パソコンなどを介さずに機器同士が直接データを転送して互いの機能を利用するという使用法も想定されている。このため、Bluetoothでは従来の通信技術のように単に回線を確立してデータが転送できるだけでは不十分で、どのような順番・タイミングで、どんな種類の情報を転送すべきか、という機器の「使い方」にあたる手順を共通化しておく必要がある。した機器固有の通信手順(プロトコル)を製品の特性ごとに標準化したものがBluetoothプロファイルである。SIGによって機器の種類ごとに標準のプロファイルが策定されているほか、メーカーが自社固有の機能を実装した独自のプロファイルを提供することもできる。Profile)を使って通信し、プリンタに印刷を依頼するのである。Profile」というプロファイルを使う)を使ってデータの転送を依頼すればよい。Profile)機器の接続/認証/暗号化を行うためのプロファイル。Profile)他のBluetooth機器が提供する機能を調べるためのプロファイル。Profile)Bluetooth機器を仮想シリアルポート化するためのプロファイル。Profile)携帯電話・PHSを介してインターネットにダイヤルアップ接続するためのプロファイル。Profile)パソコン同士でデータ転送を行うためのプロファイル。ファイル転送プロトコルのFTPとは無関係。Profile)マウスやキーボードなどの入力装置を無線化するためのプロファイル。Profile)プリンタへの出力を無線化するためのプロファイル。Profile)プリンタへ転送・印刷するためのプロファイル。Profile)名刺データの交換などを行うためのプロファイル。Profile)携帯電話・PHSやPDAと、PCとの間で、スケジュール帳や電話帳のデータ転送を行い、自動的にアップデートするためのプロファイル。Profile)Bluetoothを利用して無線LANを構築するためのプロファイル。Profile)PCからFAXを送信するためのプロファイル。Profile)Bluetooth搭載ヘッドセットと通信するためのプロファイル。モノラル音声の受信だけではなく、マイクで双方向通信する。Profile)車内やヘッドセットでハンズフリー通話を実現するためのプロファイル。HSPの機能に加え、通信の発信・着信機能を持つ。Profile)静止画像を転送するためのプロファイル。Profile)小規模ネットワークを実現するためのプロファイル。Profile)音声をレシーバー付きヘッドフォン(またはイヤホン)に伝送するためのプロファイル。HSP/HFPと異なり、ステレオ音声・高音質となる。Profile)AV機器のリモコン機能を実現するためのプロファイル。用いる認証方式の一つ。データ転送プロファイルの一つで、実装しているとデータ送受信時にOBEX認証パスキーの入力を接続相手に要求する。Profile)同一ネットワーク内にあるBluetooth搭載携帯電話同士を公衆電話網を介さずに直接、接続させるためのプロファイル。Profile)健康管理機器同士を接続するためのプロファイル。これらプロファイルのうち、DUN/FTP/HID/OPP/HSP/HFP/A2DP/AVRCPなどの使用頻度が高い。GAPやSDAPのような下位層のものは実装されていても意識されないことが多い。Profile)と呼ばれるプロファイル、もしくはGATTをベースとして定義されたプロファイルだけらしい。デバイスの発見、接続と読み書きの操作を提供するフレームワークであり、BLEデバイスの振る舞いはGATTプロファイルとして定義されている、ということのようです。Accessoryフレームワークを使用しないと使えない類いのもののようです。Profile)」と呼ばれるプロファイルをベースとして定義されたプロファイルで通信が行われます。よると、次のようなものがあるようです。Seesaa京都アプリエンジニアブログ)実際のデータのやりとりは、キャラクタリスティックに対して読み書きすることで行われます。オブジェクト指向プログラミングをしている方々には、サービスがクラス、キャラクタリスティックがプロパティととらえるとわかりやすいかもしれません。各キャラクタリスティックの値は無暗号化状態で読み書きすることもできますが、ペアリングの操作を行うと暗号化されます。キャラクタリスティックの値が変化したときに通知を受け取れるものもあります(notify)。標準として定義しているもののほかに、デバイスの開発者が独自に定義することも可能です。いくつかの必要なサービスを組み合わせたものを「プロファイル」と呼んでいます。Parameters(オプション)」のサービスが含まれると定義されています。