Linkingでできること
構成
AndroidでのLinkingは、「周辺デバイス」「Linkingアプリ」「サービスアプリ」の3つの要素で構成されています。Linkingアプリは、周辺デバイスとサービスアプリとの連携を管理する機能を持ち、連携インターフェース(以降、連携IF)を提供します。
Linkingアプリ
周辺デバイスとサービスアプリの接続状態の確認や、連携内容について設定・管理します。
連携IF
連携IFには周辺デバイス向けとサービスアプリ向けの2種類が存在します。
周辺デバイス向けの連携IFでは、周辺デバイスと通信するためのBluetoothプロファイルを規定します。LinkingアプリはOS提供のBLEを操作するAPIと定義されたプロファイルを利用して、周辺デバイスと連携します。
サービスアプリ向け連携IFは、主にAndroidのブロードキャストインテントを利用して、Linkingアプリとの連携を行うためのAPIです。実行したい機能ごとに定義されたブロードキャストインテントを送信し、Linkingアプリに周辺デバイスとの連携依頼をします。
この2つの連携IFがつながることで「周辺デバイスとサービスアプリの連携」を実現しています。
例えば、サービスアプリから周辺デバイスのデータを取得する場合、以下のような動作となります。
- サービスアプリからLinkingアプリへブロードキャストにてデータ取得要求を行う
- Linkingアプリはブロードキャストを受けて、周辺デバイスとの通信を行う
- Linkingアプリは周辺デバイスからの応答を受け、取得した情報をブロードキャストにてサービスアプリに渡す
このような構成にすることで、複数のアプリが周辺デバイスからの通知を受信することが可能になります。結果、開発者および利用者は特定のデバイスと専用アプリケーションに縛られることなく、アプリケーションと周辺デバイスの組み合わせを自由に行うことができます。
機能一覧
Linkingで利用できる機能の概要は以下の通りです。
機能 | 内容 |
---|---|
Notification | AndroidのNotificationに相当する内容(タイトル、本文)を周辺デバイスへ通知します。 |
メール通知 | メールに関する内容を周辺デバイスへ通知します。 |
スケジュール通知 | スケジュールに関する内容を周辺デバイスへ通知します。 |
その他通知 |
Notification・メール通知・スケジュール通知に当てはまらない、その他の情報を周辺デバイスに通知するときに使用します。 ※Notificationではタイトル、本文、アイコンを通知できるのに対し、複数のデータファイル、 画像、メディアを通知することができます。 |
接続デバイス情報の取得 | Linkingアプリで保持しているデバイスの情報を取得します。 |
センサーデータの取得開始/停止 | 周辺デバイスへセンサーデータの取得開始/停止依頼を行います。 |
ビーコンのスキャン開始/停止 | ビーコンの定期的なスキャン開始/停止を行います。 |
ビーコンのスキャン結果/状態通知 | ビーコンスキャン結果/状態を通知します。 |
サービスアプリへの通知を受信 | 周辺デバイスからサービスアプリへ通知を受信します。 |
距離変更通知 | Linkingアプリと周辺デバイスとの距離が変更したことを通知します。 |
周辺デバイス接続/切断通知を受信 |
Linkingアプリと周辺デバイスとの接続/切断通知を受信します。 ※その周辺デバイスの情報が渡されます。 |