MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens2アプリでアプリケーションのパッケージ名を取得して表示する

本日は HoloLens2 の技術調査枠です。
HoloLens2アプリでアプリケーションのパッケージ名を取得して表示する方法を記事にします。
f:id:bluebirdofoz:20220107224142j:plain

アプリケーションのパッケージ名

UWPアプリケーションのパッケージ名は appxmanifest ファイルで定義されているアプリを識別するための名前です。
f:id:bluebirdofoz:20220107224152j:plain

パッケージ名の取得方法

パッケージ名は PackageId で参照できます。
また通常のパッケージ名(Name)のほか、識別子を追加した FullName と FamilyName が参照できます。
docs.microsoft.com

現在のアプリケーションのパッケージ名を取得する場合は以下の通り、パッケージ名を取得できます。

string name = Windows.ApplicationModel.Package.Current.Id.Name; // 通常のパッケージ名
string fullName = Windows.ApplicationModel.Package.Current.Id.FullName;
string familyName = Windows.ApplicationModel.Package.Current.Id.FamilyName;

サンプルスクリプト

各種パッケージ名を取得して Text に表示するサンプルスクリプトを作成しました。
・ShowCurrentPackageName.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ShowCurrentPackageName : MonoBehaviour
{
    [SerializeField, Tooltip("表示テキスト")]
    private Text p_ShowText;

    /// <summary>
    /// パッケージ名をテキストに表示する
    /// </summary>
    public void SetMessageCurrentPackageName()
    {
        string showMessage = "";
#if WINDOWS_UWP
        string shortName = Windows.ApplicationModel.Package.Current.Id.Name;
        string fullName = Windows.ApplicationModel.Package.Current.Id.FullName;
        string familyName = Windows.ApplicationModel.Package.Current.Id.FamilyName;

        showMessage = string.Format("{0}\n{1}\n{2}", shortName, fullName, familyName);
#else
        showMessage = "Nothing";
#endif
        p_ShowText.text = showMessage;
    }
}

スクリプトをオブジェクトに設定してパッケージ名を表示する Text コンポーネントへの参照を追加します。
f:id:bluebirdofoz:20220107224210j:plain

ボタン押下時に 関数を呼び出すようにして準備完了です。
f:id:bluebirdofoz:20220107224218j:plain

動作確認

アプリケーションを HoloLens2 にデプロイして動作を確認します。
ボタンをタップするとアプリケーションの各種パッケージ名が表示されます。
f:id:bluebirdofoz:20220107224225j:plain