page.title=Android for Work のアップデート page.metaDescription=Android N の新しい Android for Work の API と機能。 page.keywords="android for work", "android N", "enterprise", "QR code" @jd:body
このドキュメントでは、Android N で提供されている新しい Android for Work の機能について説明します。
Android for Work では、企業が責任を負う端末のプロビジョニングに QR コードを使用できるようになりました。 セットアップ ウィザードを使用すると、QR コードをスキャンして端末をプロビジョニングできます。
プロファイル オーナーは、仕事用プロファイルで実行しているアプリに対してセキュリティ確認を指定するようユーザーに要求できます。 ユーザーが仕事用アプリを開こうとすると、セキュリティ確認画面が表示されます。 ユーザーがセキュリティの確認に成功すると、仕事用プロファイルのロックが解除され、必要に応じて暗号化も解除されます。
プロファイル オーナーが {@link
android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD} インテントを送信すると、ユーザーはセキュリティ確認をセットアップするよう求められます。
また、プロファイル オーナーは、ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
インテントを送信して、ユーザーに端末のロックを設定するよう求めることもできます。
プロファイル オーナーは仕事用プロファイル用のセキュリティ確認に、他の端末のパスワード ポリシーとは異なるパスワード ポリシーを設定できます。
たとえば、端末の確認応答の最小長は、他のパスワードに必要な長さと異なっていてもかまいません。
プロファイル オーナーがこの確認のポリシーを設定する場合は、通常 {@link
android.app.admin.DevicePolicyManager#setPasswordQuality
setPasswordQuality()} や {@link
android.app.admin.DevicePolicyManager#setPasswordMinimumLength
setPasswordMinimumLength()} など、{@link android.app.admin.DevicePolicyManager} メソッドを使用して設定します。
また、新しい DevicePolicyManager.getParentProfileInstance()
メソッドが返す {@link android.app.admin.DevicePolicyManager} インスタンスを使用して端末のロックを設定することもできます。
さらに、{@link android.app.admin.DevicePolicyManager} クラスの新しい setOrganizationColor()
メソッドおよび setOrganizationName()
メソッドを使用して仕事用プロファイル用のセキュリティ確認画面をカスタマイズすることができます。
新しいメソッドと定数の詳細については、N Preview SDK リファレンスのDevicePolicyManager
リファレンス ページをご覧ください。
デバイス オーナーとプロファイル オーナーは、新しい DevicePolicyManager.setPackagesSuspended()
メソッドを呼び出して、パッケージへのアクセスを一時的に停止することができます。
オーナーがパッケージを再度有効にする場合は、同じメソッドを使用できます。
パッケージが停止されている場合は、アクティビティを開始できないため、パッケージへの通知は行われず、オーバービュー画面のアプリのエントリは非表示になります。 停止されているパッケージはオーバービュー画面に表示されず、ダイアログ(トーストや Snackbar を含む)を表示することはできません。 また、音声を再生したり、端末を振動させたりすることもできません。
ランチャーは、アプリが現在利用できないことを示すために、アプリのアイコンをグレーでレンダリングするなど、停止されているアプリにひと目でわかる UI を適用する必要があります。
ランチャーは、新しい DevicePolicyManager.getPackageSuspended()
メソッドを呼び出してアプリが停止されているかどうかを確認できます。
デュアル プロファイル端末では、ユーザーはワークモードのオンとオフを切り替えることができます。ワークモードがオフの場合は、管理されているプロファイルが一時的にシャットダウンされます。 仕事用プロファイルのアプリ、バックグラウンドでの同期、通知がすべて無効になります。これにはプロファイル オーナーのアプリも含まれます。 また、仕事用プロファイルが無効にされている場合は、仕事用アプリを起動できないことをユーザーに示すステータス アイコンが表示されたままになります。 システム ランチャーは、仕事用アプリとウィジェットにアクセスできないことを示します。
デバイス オーナーとプロファイル オーナーは、指定した VPN を介して仕事用アプリが常時ネットワークに接続することを要求できます。 オーナーがこの要件を設定すると、端末は起動時に対象の VPN を自動的に開始します。
オーナーは、新しい DevicePolicyManager.setAlwaysOnVpnPackage()
メソッドを呼び出して VPN を使用することを要求できます。
オーナーが VPN 要件を設定しているかどうかを確認するには、新しい DevicePolicyManager.GetAlwaysOnVpnPackage()
メソッドを呼び出します。
システムがアプリの介入なしに VPN サービスを直接バインドできるため、常時接続 VPN の新しいエントリ ポイントは VPN クライアント側で処理する必要があります。 以前と同様に、アクティブなサービスを見つけるには、アクション {@link android.net.VpnService android.net.VpnService} に一致するインテント フィルタを使用します。
ユーザーは {@link android.net.VpnService} を実装する常時接続 VPN クライアントを、[Settings] > [More] > [VPN] 画面を使用して手動で設定できます。
プロファイル オーナーは、プライマリ ユーザーの仕事用連絡先のローカル検索やディレクトリ検索を許可することができます。 たとえば、ユーザーは個人用電話アプリや連絡先アプリから個人用と仕事用の両方のディレクトリの連絡先にアクセスできます(プロファイル管理者によって許可されている場合)。
連絡先プロバイダを活用するデベロッパーは、ポリシーで許可されている場合、Enterprise Contacts API を使用してプライマリ ユーザーの仕事用プロファイルのディレクトリのエントリにアクセスできます。
ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI
ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI
ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI
ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI
ContactsContract.Directory.ENTERPRISE_CONTENT_URI
ContactsContract.Directory.isEntepriseDirectoryId()
プロファイル オーナーは、以下の新しいメソッドを使用して、プライマリ ユーザーの仕事用連絡先の表示を制御できます。
DevicePolicyManager.setCrossProfileContactsSearchDisabled()
DevicePolicyManager.getCrossProfileContactsSearchDisabled()
デバイス オーナーは、端末をリモートで再起動できます。エンクロージャ内のパブリックな場所にデプロイされている端末は、電源ボタンにアクセスできないようにすることができる場合があります。
端末を再起動する必要がある場合、管理者は新しい DevicePolicyManager.reboot()
メソッドを使用して実行することができます。
デバイス オーナーがデータローミングを無効にするには、新しい {@link
android.os.UserManager} のユーザー制限 DISALLOW_DATA_ROAMING
を使用します。
デバイス オーナーは、リモートで端末のアクティビティ(アプリの起動、adb アクティビティ、画面のロック解除など)を追跡することにより、疑わしいアクティビティを特定できます。
プロセス ログはユーザーの同意は必要ありません。
ログを取得するには、デバイス オーナーは DevicePolicyManager.setSecurityLoggingEnabled()
を使用して端末のログ記録を有効にします。
API の変更点は以下のとおりです。
android.app.admin.SecurityLog
とそのメソッド
void DevicePolicyManager.setSecurityLoggingEnabled()
boolean DevicePolicyManager.isSecurityLoggingEnabled()
List<SecurityEvent>
DevicePolicyManager.retrieveSecurityLogs()
List<SecurityEvent>
DevicePolicyManager.retrievePreRebootSecurityLogs()
void DeviceAdminReceiver.onSecurityLogsAvailable()
デバイス オーナーは、端末の状態のダンプファイルを含むバグレポートをリモートでトリガーして取得できます。これにより、既知のインシデントや障害が発生した端末の徹底的な調査が可能になります。 バグレポートの内容は詳細にわたるため、ユーザーの同意が必要になります。
Android N では、この機能をサポートするために以下の API が追加されています。詳細については、N Preview SDK リファレンスをご覧ください。
DevicePolicyManager.requestBugreport()
DeviceAdminReceiver.onBugreportFailed()
DeviceAdminReceiver.onBugreportShared()
DeviceAdminReceiver.onBugreportSharingDeclined()
DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING
DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE
プロファイル オーナーとデバイス オーナーは、{@link android.app.admin.DevicePolicyManager#installKeyPair
installKeyPair()} によってインストールされたクライアント証明書を、新しい DevicePolicyManager.removeKeyPair()
メソッドを呼び出して削除できるようになりました。
プロファイル オーナーやデバイス オーナーが、サードパーティ アプリに証明書を管理する権限を付与する場合、アプリはオーナーの介入なしに、インストールされる証明書へのアクセス権をアプリ自体に付与できます。
証明書を管理するための既存の API は、以下を含むように拡張されています。
DevicePolicyManager.installKeyPair()
ユーザー エクスペリエンスに影響を及ぼしたり、ユーザー設定を制限したりするポリシーはユーザーに完全に公表されます。プロファイル オーナーとデバイス オーナーは、このポリシーと会社の IT 部門を関連付けることができます。 IT 管理者は [Settings] の「Action not allowed」という通常のメッセージに加え、端末設定に組織固有のサポート メッセージを設定できます。これには以下の新しい {@link android.app.admin.DevicePolicyManager} メソッドを使用します。
DevicePolicyManager.setShortSupportMessage()
DevicePolicyManager.setLongSupportMessage()
デバイス オーナーやプロファイル オーナーは、別のアプリケーションでアプリ制限を管理できるようにすることができます。これには新しい DevicePolicyManager.setApplicationRestrictionsManagingPackage()
メソッドを使用します。
指定されたアプリケーションは、このパーミッションが付与されているかどうかを、DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()
を呼び出して確認できます。
アプリ制限を管理するように指定されたアプリケーションは、対象となるユーザーやプロファイル内のパッケージに対して {@link android.app.admin.DevicePolicyManager#setApplicationRestrictions setApplicationRestrictions()} と {@link android.app.admin.DevicePolicyManager#getApplicationRestrictions getApplicationRestrictions()} を呼び出すことができます。
個人用アプリの位置情報に継続的にアクセスしている場合、ユーザーは仕事用アプリの位置パーミッションを無効にできます。 [Location Settings] で別の位置情報へのアクセスに切り替えると、ユーザーは位置情報の更新や、仕事用プロファイルで実行されているアプリの最新位置情報の問い合わせを拒否できます。
トップレベルの位置情報をオフに切り替えると、プライマリ プロファイルと管理されているプロファイルの両方の位置情報へのアクセスが無効になります。
アプリでは、コーポレート・カラーやロゴを含むプロファイル オーナーとデバイス オーナーのプロビジョニング フローをカスタマイズできます。
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
プロファイル オーナーとデバイス オーナーは、特定の Wi-Fi 設定に複数の CA 証明書を設定できます。
企業の Wi-Fi ネットワークで、同じ SSID を持つ別のアクセス ポイントに別の CA を使用する場合、IT 管理者は新しい setCaCertificates()
メソッドを使用して、関連するすべての CA を Wi-Fi 設定に含めることができます。
以下の API が追加されました。
WifiEnterpriseConfig.setCaCertificates()
WifiEnterpriseConfig.getCaCertificates()
デバイス オーナーは、ロック画面に表示されるオーナー情報を提供できます。 この情報は、ユーザーのロック画面のメッセージよりも優先されます(設定されている場合)。 新しい {@link android.app.admin.DevicePolicyManager} メソッドは以下のとおりです。
setDeviceOwnerLockScreenInfo()
getDeviceOwnerLockScreenInfo()
プロファイル オーナーは、バックエンドの呼び出し(アカウントの呼び出し)に仕事固有の {@link android.telecom.ConnectionService} を使用する仕事用電話アプリを指定できます。 仕事用電話は、仕事のみの通話履歴を保持し、仕事用連絡先のみを利用します。 電話アプリに関係なく、ユーザーには統一された着信 UI が表示されます。 仕事用通話アカウントへの仕事用の着信は、個人用通話アカウントへの個人用の着信とは区別されます。
通話が仕事用の通話かどうかを確認するには、電話は新しいフラグ android.telecom.Call.PROPERTY_WORK_CALL
を確認する必要があります。
通話が仕事用の通話の場合、電話はワーク バッジを追加するなどして、これを示す必要があります。
新しいユーザー制限(DISALLOW_SET_WALLPAPER
)により、ユーザーは壁紙を変更することができません。
デバイス オーナーやプロファイル オーナーは壁紙を変更できますが、制御するユーザーやプロファイルの壁紙のみ変更できます。
たとえば、プロファイル オーナーは、親ユーザーの壁紙は変更できませんが、プライマリ プロファイルのプロファイル オーナーやデバイス オーナーは変更できます。
壁紙を変更する必要があるプロファイル オーナーやデバイス オーナーは、管理するユーザーやプロファイルに壁紙があるかどうか({@link android.app.WallpaperManager#isWallpaperSupported
isWallpaperSupported()})、壁紙の変更が許可されているかどうかを(新しい WallpaperManager.isWallpaperSettingAllowed()
メソッドを使用して)確認する必要があります。
新しいユーザー制限(DISALLOW_SET_USER_ICON
)により、ユーザーはユーザー アイコンを変更することができません。
ユーザーのデバイス オーナーやプロファイル オーナーは、このアイコンを変更できます。
ただし、プロファイル オーナーが変更できるのは、制御するプロファイルのユーザー アイコンのみです。
デバイス オーナーやプロファイル オーナーは、新しい HardwarePropertiesManager
インターフェースを使用して、CPU や GPU の温度、CPU 使用率などの端末の状態に関する情報を取得できます。
新しい監視インターフェースは、遠隔地で実行されている使用されていない端末の監視に特に役立ちます。