Specification Plugin - TakayukiHoshi1984/DeviceConnect-Docs GitHub Wiki
Device Connect Managerと連携して周辺機器を操作、および、イベントを送信するアプリケーションになります。
プラグインは、以下の機能を提供します。
- 周辺機器との接続
- Device Connect Managerとの接続
- Device Connect APIの機能提供
Device Connect Managerは、プラグインを発見するとプラグインIDを生成して、プラグインと紐付けて管理します。
プラグインIDは、プラグインのパッケージ名をMD5でハッシュした値を使用します。
アンインストールした後にインストールしても、プラグインIDは変わりません。
注意: iOSは、別アプリケーションを使用することはできませんので、同梱することになります。
Device Connect Managerは、プラグインがアンインストールされた時に、紐づけていたプラグインIDを削除して、管理から解除します。
注意: iOSは、別アプリケーションを使用することはできませんので、同梱することになります。
GotAPIでは、プラグインが接続した周辺機器やWebサービスなどを総じてサービスと呼びます。
プラグインは、周辺機器と接続を行い、接続した機器にIDを生成し、サービスとして管理します。
各プラグインの中で、ユニークになるようにIDを生成します。
このIDをサービスIDとします。
プラグインは、Device Connect ManagerからService Discoveryの要求が行われた時に管理しているサービスの一覧を返却します。
Device Connect Managerは、各プラグインから取得したサービス一覧をまとめて、アプリケーションに返却します。
また、返却する時に各プラグインのサービスに、プラグインIDを付加します。
アプリケーションに返却されるサービスIDは以下のようになります。
サービスID(アプリケーションに返却される) = プラグインID + サービスID(プラグイン)
アプリケーションは、Service Discoveryで取得したサービスIDを指定してDevice Connect Managerにリクエストを送信します。
Device Connect Managerは、送られてきたリクエストからサービスIDを取得し、配送先のプラグインを見つけます。
配送先のプラグインが存在していた場合は、サービスIDからプラグインIDを削除したサービスID(プラグイン)をリクエストに設定して、プラグインに配送します。
プラグインは、送られてきたリクエストからサービスIDを取得して、各デバイスの操作を行います。
アプリケーション開発者は、サービスIDの中は気にする必要はなく、取得したサービスIDに対して命令を送信することでデバイスを操作することができます。
また、プラグイン開発者もプラグイン内で定義したサービスIDでリクエストが送られてきますので、途中のサービスIDの変換は気にする必要はありません。