プライベート スペース

図 1.プライベート スペースをロック解除したり、ロックしたりすることで、デバイス上のプライベートなアプリの表示と非表示を切り替えることができます。

プライベート スペースを使用すると、ユーザーはデバイス上に安全で隔離された環境を作成し、プライベートなアプリを他人の目から守ることができます。プライベート スペース内のアプリはランチャーの別のコンテナに表示され、プライベート スペースがロックされているときは、[最近] ビュー、通知、設定、および他のアプリで非表示になります。

サンドボックス化されたスペースは別の Android プロファイルです。エンドユーザーがプライベート スペース内にアプリを追加またはインストールすると、そのアプリはこの新しい Android プロファイルにインストールされます。システムはこれを新規アプリのインストールとして扱い、アプリデータがプライベート スペースにコピーされることはありません。プライベート スペースがロックされると非公開プロファイルのユーザーは停止し、ロック解除されるとユーザーは再び開始します。

プライベート スペースのアプリは、メインスペースのアプリの個別のコピーとしてインストールされます。ユーザー コンテンツ(ユーザーが生成またはダウンロードしたもの)やユーザー アカウントは、プライベート スペースとメインスペースに分離されます。システム共有シートと写真選択ツールを使用すると、プライベート スペースがロック解除されている場合に限り、アプリにスペース全体のコンテンツへのアクセスを許可できます。

プライベート スペースは、Android マルチユーザー モデルに基づいており、次のプロファイルユーザータイプが追加されています。

プロファイル:
非公開
ユーザータイプ:
android.os.usertype.profile.PRIVATE

設定とランチャー アプリ

ロック、ロック解除、非表示の状態をサポートするには、設定とランチャー アプリを更新する必要があります。プライベート スペースがロックされている場合、ランチャーではロックを解除するためのエントリ ポイントが提供されます(非表示状態を除く)。プライベート スペースがロックされている場合、設定アプリはプライベート スペースの存在を明らかにしてはなりません。

LauncherApps#getLauncherUserInfo を使用して非公開プロファイル ユーザーを識別します。ランチャー アプリは、ロック状態ロック解除状態を登録し、これらのブロードキャストを受信したときに UI でプライベート スペースの状態を変更する必要があります。これらのブロードキャストのどちらにも、非公開プロファイル ユーザーを参照するために使用可能な EXTRA_USER と呼ばれる追加の定数があります。

ランチャー アプリは UserManager.isQuietModeEnabled メソッドを使用して、非公開プロファイルの状態を確認できます。

非公開プロファイル

非公開プロファイルは、プライベート スペースで使用するための新しいプロファイル タイプ android.os.usertype.profile.PRIVATE を追加します。非公開プロファイルは、仕事用プロファイルやクローン プロファイルと同じデバイス上に存在できます。これは、メインの Android ユーザーとは別のサンドボックス化されたスペースです。プライベート スペースのロックが解除されると、設定、Sharesheet、写真選択ツール、DocsUI にアプリが表示されるようになります。プライベート スペースがロックされている場合、プライベート スペース内のアプリはこれらのいずれのサーフェスにも表示されません。プライベート スペースは、1 台のデバイスに 1 つのインスタンスのみを持つことができ、メインユーザー用にのみ存在できます(セカンダリ ユーザーや他のプロファイル内では存在できない)。

権限

ランチャー アプリが非公開プロファイルにアクセスするには、android.permission.ACCESS_HIDDEN_PROFILES 権限と android.app.role.RoleManager.ROLE_HOME ロールが必要です。

AOSP ランチャーを使用しない実装では、ランチャーを変更して非公開プロファイルへのサポートを追加する必要があります。プライベート スペースを備えたランチャー アプリの開発の詳細については、デベロッパー サイトのランチャー アプリをご覧ください。

インテント

テレフォニー インテントはメインユーザーに送信され、通知が表示されます。その他のすべてのインテントは非公開プロファイルに制限されており、リダイレクトされません。