管理対象プロファイルや仕事用プロファイルは、管理上の特別な追加プロパティや視覚的特徴を持つ Android ユーザーです。
管理対象プロファイルの主な目的は、管理対象データ(企業データなど)を格納するための分離された安全な領域を作成することです。プロファイルの管理者は、データの範囲、入力、出力、存続期間を完全に制御できます。これらのポリシーは非常に強力であるため、デバイス管理者ではなく管理対象プロファイルによって管理されます。
- 作成: 管理対象プロファイルは、メインユーザーの任意のアプリケーションで作成できます。管理対象プロファイルの作成前に、管理対象プロファイルの動作とポリシーの適用についてユーザーに通知されます。
- 管理: 管理は、DevicePolicyManager クラスでプログラムによって API を起動し、デバイスの使用を制限するアプリケーションによって行われます。このようなアプリケーションはプロファイル所有者と呼ばれ、初期のプロファイル設定時に定義されます。管理対象プロファイルに固有のポリシーには、アプリの制限、更新可能性、インテントの動作が含まれます。
- グラフィック: 管理対象プロファイルのアプリケーション、通知、ウィジェットには常にバッジが表示され、通常は、メインユーザーのユーザー インターフェース(UI)要素に沿って表示されます。
データの分離
管理対象プロファイルでは、次のデータ分離ルールが使用されます。
アプリ
メインユーザーと管理対象プロファイルに同じアプリケーションが存在する場合、それぞれのアプリケーションが使用できるデータは各自の分離されたデータに制限されます。一般的に、それらのアプリケーションは相互に独立して動作し、プロファイルとユーザーの境界を超えて直接通信することはできません。
アカウント
管理対象プロファイルのアカウントはメインユーザーとは明確に区別されます。 プロファイルとユーザーの境界を超えて認証情報にアクセスすることはできません。それぞれのアカウントにアクセスできるのは、そのアカウントのコンテキストで実行されているアプリのみです。
インテント
管理者は、管理対象プロファイル内外でインテントが解決されるかどうかを制御できます。管理対象プロファイルのアプリケーションはデフォルトで、管理対象プロファイル内に範囲が制限されます(Device Policy API を除く)。
設定
設定の適用は通常、管理対象プロファイルに範囲が制限されますが、ロック画面と暗号化の設定はデバイスにも適用され、メインユーザーと管理対象プロファイルで共有されます。 それ以外の場合、プロファイル所有者は管理対象プロファイル外でデバイス管理者権限を持つことができません。
管理対象プロファイルは、次のように新しい種類のセカンダリ ユーザーとして実装されます。
uid = 100000 * userid + appid
管理対象プロファイルは、通常のユーザーと同じように個別のアプリデータを持ちます。
/data/user/<userid>
userId は Binder.getCallingUid()
を使用するすべてのシステム リクエストで計算され、すべてのシステム状態とレスポンスは userId で分離されます。getCallingUid
の代わりに Binder.getCallingUserHandle
を使用することで、uid と userId の混同を避けることができます。
AccountManagerService は、ユーザーごとに個別のアカウントのリストを保持します。管理対象プロファイルと通常のセカンダリ ユーザーの主な違いは次のとおりです。
- 管理対象プロファイルは、親ユーザーに関連付けられ、起動時にメインユーザーと一緒に開始されます。
- 管理対象プロファイルの通知は ActivityManagerService によって有効になり、これにより、管理対象プロファイルはアクティビティ スタックをメインユーザーと共有できます。
- 共有されるその他のシステム サービスには、IME、A11Y サービス、Wi-Fi、NFC などがあります。
- 新しい Launcher API を使用すると、ユーザーを切り替えることなく、管理対象プロファイルのバッジ付きアプリやホワイトリストに登録されたウィジェットを、メイン プロファイルのアプリとともにランチャーに表示できます。
デバイス管理
Android デバイス管理には、企業向けの次の種類のデバイス管理が含まれます。
- プロファイル所有者: 個人所有デバイスの業務使用(BYOD)環境向けに設計されています。
- デバイス所有者: 会社所有環境向けに設計されています。
Android 5.0 用に追加された新しいデバイス管理 API のほとんどは、プロファイル所有者またはデバイス所有者のみが使用できます。従来のデバイス管理については、シンプルな一般ユーザーのみのケース(デバイスを探すなど)に適用されることを除き、変更はありません。
プロファイル所有者
デバイス ポリシー クライアント(DPC)アプリは通常、プロファイル所有者として機能します。 また、通常、Google Apps Device Policy などの企業向けモバイル管理(EMM)パートナーによって提供されます。
プロファイル所有者アプリは、ACTION_PROVISION_MANAGED_PROFILE
インテントを送信することで、デバイスに管理対象プロファイルを作成します。このプロファイルは、個人用インスタンスに加えて、アプリのインスタンスにバッジが表示されていることで識別できます。このバッジ(または Android デバイスの管理アイコン)によって、どのアプリが仕事用アプリであるかを区別できます。
EMM では、ロック画面の強制などの一部例外を除き、管理対象プロファイルのみを制御します。個人用スペースは制御範囲外です。
デバイス所有者
デバイス所有者は、プロビジョニングされていないデバイスでのみ設定できます。
- デバイスの初期設定時にのみプロビジョニングできます
- 強制公開が常にクイック設定で表示されます
デバイス所有者は、プロファイル所有者ができないいくつかのタスクを実行できます。
- デバイスのデータを消去する
- Wi-Fi または Bluetooth を無効にする
setGlobalSetting
を制御するsetLockTaskPackages
(自身をフォアグラウンドに固定できるパッケージをホワイトリストに登録する機能)DISALLOW_MOUNT_PHYSICAL_MEDIA
を設定する(デフォルトではFALSE
)。TRUE
に設定すると、物理的なメディア(ポータブル メディアと追加可能なメディアの両方)をマウントすることはできません。
DevicePolicyManager API
Android 5.0 以降では、DevicePolicyManager が大幅に改善され、数多くの API が新しく追加されました。それらの API を使用することで、会社所有環境と個人所有デバイスの業務使用(BYOD)環境の両方のユースケースをサポートできます。たとえば、アプリの制限、証明書のサイレント インストール、クロスプロファイルの共有インテント アクセス制御などを行うことができます。 操作を開始する際には、デバイス ポリシー クライアント(DPC)アプリのサンプルである BasicManagedProfile.apk を使用できます。詳しくは、Work Policy Controller を構築するをご確認ください。
管理対象プロファイルのユーザー エクスペリエンス
Android 9 では管理対象プロファイルとプラットフォームの統合が強化されており、ユーザーは仕事用の情報と個人用の情報をデバイス上で簡単に分けることができます。これらの管理対象プロファイルでは、ランチャーのユーザー エクスペリエンスが変更されます。管理対象プロファイルでの UX の変更を実装すると、管理対象デバイス全体で一貫したユーザー エクスペリエンスが実現します。
アプリトレイがあるデバイスでの UX の変更点
Android 9 の Launcher3 での管理対象プロファイルのユーザー エクスペリエンスの変更を実装することで、ユーザーは個人用プロファイルと管理対象プロファイルを分けることができるようになります。アプリドロワーには、タブ付きのビューが表示され、個人用プロファイルのアプリを区別できます。ユーザーが管理対象プロファイルのタブを最初に表示すると、管理対象プロファイルでの操作に役立つ情報ビューが表示されます。ユーザーは、ランチャーの仕事用タブで切り替えボタンを使用して、管理対象プロファイルのオンとオフを切り替えることもできます。
タブ付きのプロファイル ビュー
Android 9 では、管理対象プロファイルを有効にすることで、アプリドロワーで個人用アプリのリストと管理対象アプリのリストを切り替えることができます。管理対象プロファイルを有効にすると、アプリビューは ViewPager
によって管理される 2 つの RecyclerViews
に分けられます。ユーザーは、アプリドロワーの上部にあるプロファイル タブを使用することで、プロファイル ビューを切り替えることができます。PersonalWorkSlidingTabStrip
クラスは、タブ付きプロファイル インジケーターのリファレンス実装を提供します。タグ付きビューは、Launcher3 クラスの AllAppsContainerView
の一部として実装されます。
![]() |
![]() |
図 1. 個人用タブのビュー | 図 2. 仕事用タブのビュー。管理対象プロファイルの切り替えボタンが画面下部に表示されている |
情報ビュー
Launcher3 には、図 3 のようにユーザーが初めて仕事用タブを開いたときに、画面の下部に情報ビューを表示できるオプションも用意されています。情報ビューを使用することで、仕事用タブの目的や仕事用アプリに簡単にアクセスする方法をユーザーに提示できます。
情報ビューは、クラス BottomUserEducationView
によって Android 9 以降で定義され、レイアウトは work_tab_tottom_user_education_view.xml
によって制御されます。BottomUserEducationView
内の KEY_SHOWED_BOTTOM_USER_EDUCATION
ブール値はデフォルトで false
に設定されています。ユーザーが情報ビューを非表示にすると、このブール値が true
に設定されます。
図 3. 仕事用タブの情報ビュー
管理対象プロファイルの有効化と無効化を切り替える
管理対象デバイスの管理者は、仕事用タブ内のフッタービューで切り替えボタンを表示できます。ユーザーはこの切り替えボタンで、管理対象プロファイルの有効化と無効化を切り替えることができます(上の 図 2 を参照)。切り替えボタンのソースは WorkFooterContainer
にあります(Android 9 以降)。管理対象プロファイルの有効化と無効化は非同期で行われ、有効なすべてのユーザー プロファイルに適用されます。このプロセスは、Android 9 の WorkModeSwitch
クラスによって制御されます。
アプリトレイがないデバイスでの UX の変更点
アプリトレイがないランチャーの場合は、管理対象プロファイルのアプリのショートカットを引き続き仕事用フォルダに配置することをおすすめします。
仕事用フォルダが正しく作成されず、新しくインストールされたアプリが仕事用フォルダに追加されない場合、ManagedProfileHeuristic
クラスの onAllAppsLoaded
メソッドに次の変更を適用します。
for (LauncherActivityInfo app : apps) { // Queue all items which should go in the work folder. if (app.getFirstInstallTime() < Long.MAX_VALUE) { InstallShortcutReceiver.queueActivityInfo(app, context); } }
UX の変更を検証する
TestDPC アプリを使用することで、管理対象プロファイルの UX 実装をテストできます。
- Google Play ストアから TestDPC アプリをインストールします。
- ランチャーまたはアプリドロワーを開き、[Set up TestDPC] アイコンを選択します。
- 画面の手順に沿って管理対象プロファイルを設定します。
- ランチャーまたはアプリドロワーを開いて、仕事用タブがあることを確認します。
- 仕事用タブの下に管理対象プロファイルのフッターがあることを確認します。
- 管理対象プロファイルのスイッチをオンまたはオフに切り替えできることを確認します。管理対象プロファイルは、スイッチに応じて有効または無効になります。
![]() |
![]() |
![]() |
図 4. [Set up TestDPC] で管理対象プロファイルを設定する | 図 5. [Set up TestDPC] でアカウントを追加する | 図 6. 設定完了 |
![]() |
![]() |
図 7. 仕事用タブがあるアプリドロワー。管理対象プロファイルのフッター スイッチがオンになっており、管理対象プロファイルが有効になっている。 | 図 8. 仕事用タブがあるアプリドロワー。管理対象プロファイルのフッター スイッチがオフになっており、管理対象プロファイルが無効になっている。 |
管理対象プロファイルのアプリバッジ
ユーザー補助の観点から、Android 9 では仕事用バッジの色がオレンジ色から青色(#1A73E8)に変わります。