本日は HoloLens2 の小ネタ枠です。
HoloLensで自作アプリからRemoteAssistを直接起動する方法を記事にします。
URIに応じた規定アプリの起動
UWPアプリではURIを用いて外部アプリを起動することができます。
更に予めスキームが登録された規定アプリは以下の URI スキームを利用することで起動することができます。
・URI に応じた既定のアプリの起動
docs.microsoft.com
URI スキーム | 起動対象 |
bingmaps:, ms-drive-to:, ms-walk-to: | Maps アプリ |
http: | デフォルト Web ブラウザ |
mailto: | デフォルトメールアプリ |
ms-call: | 通話アプリ |
ms-chat: | メッセージングアプリ |
ms-people: | Peopleアプリ |
ms-photos: | Photosアプリ |
ms-settings: | Settingsアプリ |
ms-store: | MS-Storeアプリ |
ms-tonepicker: | トーンピッカー |
ms-yellowpage: | Nearby Numbersアプリ |
msnweather: | 天気アプリ |
microsoft-edge: | Microsoft Edgeブラウザ |
Dynamics 365 Remote Assist も規定アプリのため、以下のページにある通り、URI スキームが定義されています。
・別のアプリから Dynamics 365 Remote Assist を起動する
docs.microsoft.com
ms-voip-video | ビデオ対応の通話 |
ms-voip-call | 音声のみの通話 |
本スキームは contactids フィールドを指定できます。
ms-voip-video:?contactids=\<contactID\>
contactids にはユーザーの Azure Active Directory (Azure AD) オブジェクト ID を指定します。
オブジェクト ID の確認手順は以下を参照ください。
・ユーザーオブジェクト ID を検索する
docs.microsoft.com
サンプルアプリ
実際に RemoteAssist をアプリ内から呼び出す自作アプリを作成してみます。
アプリの呼び出しにボタンオブジェクトを利用するため、Unity プロジェクトに MRTK をインポートします。
MRTK のインポート手順は以下の記事などを参考にしてください
bluebirdofoz.hatenablog.com
RemoteAssist をビデオ対応の通話で起動する以下のサンプルスクリプトを作成しました。
・RemoteAssistLauncher.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.WSA; public class RemoteAssistLauncher : MonoBehaviour { public void LaunchRemoteAssist() { // Azure AD のオブジェクトIDを設定する // 起動には何かしらのID設定を入力しておく必要がある var objectID = "unknown"; // ms-voip-video を指定するとビデオ通話で RemoteAssist が呼び出される var uri = @"ms-voip-video:?contactids=" + objectID; // URI を指定して起動する // bool 値の指定により URI が安全でない可能性の警告を表示します Launcher.LaunchUri(uri, true); } }
スクリプトを適当なゲームオブジェクトに設定します。
スクリプトの関数を呼び出すボタンイベントを設定してシーンの作成は完了です。
HoloLens2での動作確認
HoloLens2 にインストールして動作を確認します。
アプリケーションの HoloLens2 へのインストール手順は以下を参照ください。
bluebirdofoz.hatenablog.com
アプリが起動したらボタンをタップします。
ホーム画面を介さず、RemoteAssist が起動します。
これで自作アプリから RemoteAssist を直接起動することができました。