📄
HoloLens 2 のスクーンオフ、アプリバックグラウンド遷移を検出する方法
はじめに
HoloLens 2 のアプリケーション実行状態遷移の検出方法について
HoloLens 2 アプリでは、アプリケーション実行中にメニューを開き、
ホームへ戻るボタンを押すと、アプリケーションがバックグラウンド実行状態 (Focus: false
)に遷移します。また、スクリーンオフ (※) にすると、実行中のアプリケーションの処理が停止された (Pause
) 状態に遷移します。※ 電源ボタン (物理) を押すと、スクリーンオフになる
操作 | 操作後の状態 |
---|---|
アプリケーションを立ち上げる | 0. メイン実行 |
メニューからホームメニューを押す | 1. バックグラウンド実行 |
電源ボタンを使ってスクリーンオフにする | 2. 停止状態 |
HoloLens 2 アプリケーションを現場環境へデプロイする際は、
アプリケーションの実行状態を監視して誤操作や不要なクラウドサービスの利用 (課金) を
回避する仕組みを実装に組み入れる必要があるかと思います。
ex.
- アプリ内で使用している有料サービスを停止する
- アプリの完全停止 (エンドユーザーが想定していない動作を防ぐ)
それでは、実際に上記ステータスの遷移を検出してみたいと思います。
バックグラウンド処理への移行を検出
MonoBehavior の OnApplicationFocus(bool)
を使用して状態を取得可能
// HoloLens メニューを開き、ホームボタンを押した際のイベント関数
private void OnApplicationFocus(bool status)
{
// アプリケーション実行状態
// false => バックグラウンド実行
// true => メイン実行
if (status == false)
{
// Do something
}
}
スクリーンオフへの移行を検出
MonoBehavior の OnApplicationPause(bool)
を使用して状態を取得可能
// HoloLens スクリーンがオフになった際のイベント関数
private void OnApplicationPause(bool status)
{
// スクリーンのポーズ状態
// false => スクリーンオン
// true => スクリーンオフ
if (status == true)
{
// Do something
}
}
終わりに
HoloLens 2 のスクリーンオフ、ホーム画面遷移イベントを取得することができます。下書きの記事がかなり溜まってきているので、少しずつ公開していければと思います。
Discussion