プライベート スペースを使用すると、ユーザーはデバイス上に安全で隔離された環境を作成し、プライベートなアプリを他人の目から守ることができます。プライベート スペース内のアプリはランチャーの別のコンテナに表示され、プライベート スペースがロックされているときは、[最近] ビュー、通知、設定、および他のアプリで非表示になります。
サンドボックス化されたスペースは別の Android プロファイルです。エンドユーザーがプライベート スペース内にアプリを追加またはインストールすると、そのアプリはこの新しい Android プロファイルにインストールされます。システムはこれを新規アプリのインストールとして扱い、アプリデータがプライベート スペースにコピーされることはありません。プライベート スペースがロックされると非公開プロファイルのユーザーは停止し、ロック解除されると再開します。
プライベート スペースのアプリは、メインスペースのアプリの個別のコピーとしてインストールされます。ユーザー コンテンツ(ユーザーが生成またはダウンロードしたもの)やユーザー アカウントは、プライベート スペースとメインスペースに分離されます。システムの Sharesheet と写真選択ツールを使用すると、プライベート スペースがロック解除されている場合に限り、アプリにスペース全体のコンテンツへのアクセスを許可できます。
プライベート スペースは、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 ランチャーを使用しない実装では、ランチャーを変更して非公開プロファイルのサポートを追加する必要があります。プライベート スペースを備えたランチャー アプリの開発の詳細については、デベロッパー サイトの [ランチャー アプリ] をご覧ください。
インテント
テレフォニー インテントはメインユーザーに送信され、通知が表示されます。その他のすべてのインテントは非公開プロファイルに制限されており、リダイレクトされません。