アプリケーション テザリングを使用したリモート アプリケーション上のアクションの共有と実行
アプリケーション テザリングの使用 への移動
RTL のアプリケーション テザリングの実装では、アクションをサポートしています。アプリケーション テザリングを使用すると、以下が可能になります。
- 接続されたアプリケーションからリモートで実行できるローカル アクションの共有
- 接続されたアプリケーションが公開しているリモート アクションの実行
アプリケーション テザリングを使ってアクションを共有するには、まず、アプリケーションにアプリケーション テザリング機能を追加し、他のアプリケーションを発見しペア設定して接続できるようアプリケーションを準備する必要があります。
目次
アクションの作成
アプリケーション テザリングを使ってアクションを共有したり、ローカル アクションを使ってリモート アクションを実行する前に、アクションとは何かと、その定義方法を理解しておく必要があります。
- FireMonkey を使用しているなら、「FireMonkey アクション」を参照してください。
- VCL を使用の場合には、「VCL アクション」を参照してください。
- そうでなければ、「RTL アクション」を参照してください。
アクションの共有
既存のアクションを共有するには:
- フォーム デザイナで TTetheringAppProfile コンポーネントを選択し、[オブジェクト インスペクタ]でその Actions プロパティをダブルクリックします。
- 開いたアクション リスト エディタで、 をクリックして、新しい TLocalAction をリストに追加します。TLocalAction は、実際のアクションについての共有情報を提供するものです。
- 新規追加した TLocalAction をアクション リスト エディタで選択した状態で、[オブジェクト インスペクタ]で Action プロパティのコンボ ボックスを開き、この TLocalAction のインスタンスに関連付けたい既存アクションを選択します。
これで、アクションがアプリケーション テザリングによって共有されます。接続されたアプリケーションから、このアプリケーション上でこのアクションをリモート実行することができます。
リモート アクションの実行
アクションを共有しているアプリケーションに自分のアプリケーションを接続したら、その共有されたアクションをターゲット アプリケーション上でリモート実行することができます。
グループを使って他のアプリケーションに接続している場合には、設計時にリモート アクションとローカル アクションを関連付けることができます。そのローカル アクションを実行すると、関連付けられたリモート アクションがトリガされます。
または、他のアプリケーションとの接続にグループを使用しているかどうかに関係なく、アクション名を使って実行時にリモート アクションを同期に実行するか、非同期に実行することもできます。
グループで接続されたアプリケーション上のリモート アクションをローカル アクションを使って実行する
設計時にローカル アクションとリモート アクションを関連付けるには:
- トリガしたいリモート アクションと同じ Name のアクションを作成します。「アクションの作成」セクションを参照してください。
- 上述の手順で、アプリケーション テザリングを使ってこのアクションを共有します。
- 新規追加した TLocalAction をアクション リスト エディタで選択した状態で、[オブジェクト インスペクタ]で Kind プロパティを Mirror に変更します。
TLocalAction の Kind を Mirror に変更すると、TLocalAction の Action プロパティに定義したアクションは共有されません。そうではなく、関連付けたアクションをアプリケーション内で実行するたびに、TLocalAction で指定した名前と同じ Name を持つリモート アクションが TLocalAction によってトリガされます。
RunRemoteAction を使ってリモート アクションを実行する
TTetheringAppProfile コンポーネントには RunRemoteAction というメソッドが用意されており、これを使用してリモート アクションを実行することができます。
どのリモート アクションを実行するかは、以下のいずれかのパラメータで指定できます。
- リモート アクションを含んだリモート アプリケーション プロファイルを表す TTetheringProfileInfo のインスタンスと、リモート アクションの名前を指定する。
- TTetheringManager コンポーネントの RemoteProfiles プロパティは、お使いのプロファイルに接続されているリモート アプリケーション プロファイルのリストを示します。
- TRemoteAction のインスタンスを指定する。
- TTetheringAppProfile コンポーネントには GetRemoteProfileActions というメソッドが用意されています。このメソッドは、TTetheringProfileInfo のインスタンスとして指定されたリモート アプリケーション プロファイルが共有しているリモート アクションのリストを返します。
RunRemoteActionAsync を使ってリモート アクションを実行する
TTetheringAppProfile コンポーネントには RunRemoteActionAsync というメソッドが用意されており、これを使用してリモート アクションを非同期に実行することができます。リモート アクションを非同期に実行することで、呼び出し側はリモート アクションが終了するまでブロックされません。
どのリモート アクションを実行するかは、以下のいずれかのパラメータで指定できます。
- リモート アクションを含んだリモート アプリケーション プロファイルを表す TTetheringProfileInfo のインスタンスと、リモート アクションの名前を指定する。
- TTetheringManager コンポーネントの RemoteProfiles プロパティは、お使いのプロファイルに接続されているリモート アプリケーション プロファイルのリストを示します。
- TRemoteAction のインスタンスを指定する。
- TTetheringAppProfile コンポーネントには GetRemoteProfileActions というメソッドが用意されています。このメソッドは、TTetheringProfileInfo のインスタンスとして指定されたリモート アプリケーション プロファイルが共有しているリモート アクションのリストを返します。
関連項目
- アプリケーションへのアプリケーション テザリング機能の追加
- アプリケーション テザリングを使用したリモート アプリケーションへの接続
- アプリケーション テザリングを使用したリモート アプリケーションとのデータの共有
- BDShoppingList サンプル
- DesktopCast サンプル
- MediaPlayer サンプル
- PhotoWall サンプル