diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index 2464e9e87bb49..741e85c83fb6e 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -706,7 +706,9 @@ redirects: - from: /training/enterprise/app-compatibility.html to: /work/managed-profiles.html - from: /training/enterprise/app-restrictions.html - to: /work/app-restrictions.html + to: /work/managed-configurations.html +- from: /work/app-restrictions.html + to: /work/managed-configurations.html - from: /training/enterprise/cosu.html to: /work/cosu.html - from: /training/enterprise/device-management-policy.html diff --git a/docs/html/distribute/googleplay/work/about.jd b/docs/html/distribute/googleplay/work/about.jd index 79e8a899f46f0..b60c197a2ee11 100644 --- a/docs/html/distribute/googleplay/work/about.jd +++ b/docs/html/distribute/googleplay/work/about.jd @@ -56,8 +56,8 @@ page.image=images/distribute/gpfw.jpg properly. Businesses are more conscious of data security and employee productivity, especially when it comes to features that share information with other services. -
- The device or profile owner can enable another application to manage app
- restrictions via the new
+ The device or profile owner can enable another application to manage
+ configurations via the new
DevicePolicyManager.setApplicationRestrictionsManagingPackage()
method. The nominated application can check whether this permission has been
granted by calling
@@ -413,7 +413,7 @@ Android N.
- An application nominated to manage app restrictions can call {@link + An application nominated to manage configurations can call {@link android.app.admin.DevicePolicyManager#setApplicationRestrictions setApplicationRestrictions()} and {@link android.app.admin.DevicePolicyManager#getApplicationRestrictions diff --git a/docs/html/work/_book.yaml b/docs/html/work/_book.yaml index 82571f314a95f..1482a4e3db8e9 100644 --- a/docs/html/work/_book.yaml +++ b/docs/html/work/_book.yaml @@ -1,18 +1,132 @@ toc: - title: Android for Work Home path: /work/index.html + path_attributes: + - name: es-lang + value: Página principal de Android for Work + - name: in-lang + value: Beranda Android for Work + - name: ja-lang + value: Android for Work ホーム + - name: ko-lang + value: Android for Work 홈 + - name: pt-br-lang + value: Página inicial do Android for Work + - name: ru-lang + value: Главная – Android for Work + - name: vi-lang + value: Trang chủ Android for Work + - name: zh-cn-lang + value: Android for Work 首页 + - name: zh-tw-lang + value: Android for Work 首頁 - title: Overview path: /work/overview.html + path_attributes: + - name: es-lang + value: Información general + - name: in-lang + value: Ringkasan + - name: ja-lang + value: 概要 + - name: ko-lang + value: 개요 + - name: pt-br-lang + value: Visão geral + - name: ru-lang + value: Обзор + - name: vi-lang + value: Tổng quan + - name: zh-cn-lang + value: 概览 + - name: zh-tw-lang + value: 總覽 - title: Developer Guide path: /work/guide.html + path_attributes: + - name: es-lang + value: Guía para desarrolladores + - name: in-lang + value: Panduan Pengembang + - name: ja-lang + value: デベロッパー ガイド + - name: ko-lang + value: 개발자 가이드 + - name: pt-br-lang + value: Guia do desenvolvedor + - name: ru-lang + value: Руководство для разработчиков + - name: vi-lang + value: Hướng dẫn cho nhà phát triển + - name: zh-cn-lang + value: 开发者指南 + - name: zh-tw-lang + value: 開發人員指南 - title: Set up Managed Profiles path: /work/managed-profiles.html + path_attributes: + - name: es-lang + value: Configurar perfiles administrados + - name: in-lang + value: Menyiapkan Profil Terkelola + - name: ja-lang + value: 管理対象プロファイルの設定 + - name: ko-lang + value: 관리 프로필 설정 + - name: pt-br-lang + value: Configurar perfis gerenciados + - name: ru-lang + value: Настройка управляемых профилей + - name: vi-lang + value: Thiết lập hồ sơ được quản lý + - name: zh-cn-lang + value: 设置托管配置文件 + - name: zh-tw-lang + value: 設定受管理的設定檔 -- title: Set up App Restrictions - path: /work/app-restrictions.html +- title: Set up Managed Configurations + path: /work/managed-configurations.html + path_attributes: + - name: es-lang + value: Configurar ajustes administrados + - name: in-lang + value: Menyiapkan Konfigurasi Terkelola + - name: ja-lang + value: 管理対象構成の設定 + - name: ko-lang + value: 관리 구성 설정 + - name: pt-br-lang + value: Definir configurações gerenciadas + - name: ru-lang + value: Настройка управляемых конфигураций + - name: vi-lang + value: Thiết lập cấu hình được quản lý + - name: zh-cn-lang + value: 设置托管配置 + - name: zh-tw-lang + value: 設置受管理的設定 - title: Set up Single-Purpose Devices path: /work/cosu.html + path_attributes: + - name: es-lang + value: Configurar dispositivos con una sola finalidad + - name: in-lang + value: Menyiapkan Perangkat Tujuan Tunggal + - name: ja-lang + value: 用途に特化した端末の設定 + - name: ko-lang + value: 단일 목적 기기 설정 + - name: pt-br-lang + value: Configurar dispositivos com uma finalidade específica + - name: ru-lang + value: Настройка одноцелевых устройств + - name: vi-lang + value: Thiết lập thiết bị chuyên dùng + - name: zh-cn-lang + value: 设置单一用途设备 + - name: zh-tw-lang + value: 設定單一用途的裝置 diff --git a/docs/html/work/cosu.jd b/docs/html/work/cosu.jd index 3058365a150a4..dfecf008be44a 100644 --- a/docs/html/work/cosu.jd +++ b/docs/html/work/cosu.jd @@ -128,7 +128,7 @@ Prevents restarting in safe mode
Additional COSU management features launched with Marshmallow make it easier to develop and deploy Android devices as a single-use device. If you want to -enforce server-side app restrictions or server-side profile policy controls, +enforce server-side managed configurations or server-side profile policy controls, you need to use an EMM or make your application a DPC. Follow the instructions below as you create your application.
@@ -343,7 +343,7 @@ Keep a device’s screen on while plugged in via- App restrictions are a set of instructions that IT administrators + Managed configurations are a set of instructions that IT administrators can use to manage their users’ mobile devices in a specific way. These instructions are universal and work across any EMM, allowing administrators to remotely configure applications on their users’ @@ -204,7 +204,7 @@ page.image=images/work/cards/android-studio_600px.png
If you’re developing apps for business or government, you may need to satisfy your industry’s specific set of requirements. Using - application restrictions, the IT administrator can remotely specify + managed configurations, the IT administrator can remotely specify settings and enforce policies for their users’ Android apps; for example:
@@ -217,26 +217,26 @@ page.image=images/work/cards/android-studio_600px.png- The Set up App Restrictions + The Set up Managed Configurations guide is the key source for information on how to build and deploy - app restrictions. After you’ve reviewed this documentation, see + managed configurations. After you’ve reviewed this documentation, see recommendations below for additional guidance.
- As soon as you launch an application, you can see if app
- restrictions are already set for this app in onStart() or
+ As soon as you launch an application, you can see if managed
+ configurations are already set for this app in onStart() or
onResume(). Additionally, you can find out if your
application is managed or unmanaged. For example, if
getApplicationRestrictions() returns:
- IT administrators can change app restrictions and what policies they - want to enforce on their users at any time. Because of this, we - recommend you ensure that your app can accept new restrictions as - follows: + IT administrators can change managed configurations and what + policies they want to enforce on their users at any time. Because of + this, we recommend you ensure that your app can accept new + restrictions for your managed configuration as follows:
- A solution to both problems is to authenticate users using Chrome + A solution to both problems is to authenticate users using browser Custom Tabs, instead of WebView. This ensures that authentication:
- Chrome Custom Tabs are supported using Platform APIs from API level - 23 (Android 6.0), and support libraries back to API level 4 (Android - 1.6). To implement Chrome Custom Tabs, you need to use a supported - browser, such as Chrome 45 or later. + Custom Tabs are supported back to API level 15 (Android 4.0.3). + To use Custom Tabs you need a supported browser, such as Chrome. + Chrome 45 and later implement this feature as + Chrome Custom Tabs.
-- Google, in conjunction with the OpenID Foundation, has published an - open source library on GitHub. To set up Chrome Custom Tabs for SSO, - see the documentation and sample code on GitHub. + Google has open sourced an OAuth client library that uses Custom + Tabs, contributing it to the OpenID Connect working group of the + OpenID Foundation. To set up Custom Tabs for SSO with the + AppAuth library, see the documentation and sample code on GitHub, or try + the codelab.
If you are developing apps for the enterprise market, you may need to satisfy -particular requirements set by a company's policies. Application restrictions -allow the enterprise administrator to remotely specify settings for apps. -This capability is particularly useful for enterprise-approved apps deployed to -a managed profile.
++ If you are developing apps for the enterprise market, you may need + to satisfy particular requirements set by a company's policies. + Managed configurations, previously known as application restrictions, + allow the enterprise administrator to remotely specify settings for + apps. This capability is particularly useful for enterprise-approved + apps deployed to a managed profile. +
For example, an enterprise might require that approved apps allow the enterprise administrator to:
@@ -48,55 +51,55 @@ enterprise administrator to:- Apps define the restrictions and configuration options that can be remotely - set by an administrator. These restrictions are - arbitrary configuration settings that can be changed by a restrictions - provider. If your app is running on an enterprise device's managed - profile, the enterprise administrator can change your app's restrictions. + Apps define the managed configuration options that can be remotely + set by an administrator. These are arbitrary settings that can be + changed by a managed configuration provider. If your app is running on an + enterprise device's managed profile, the enterprise administrator + can change your app's managed configuration.
- The restrictions provider is another app running on the same device. + The managed configurations provider is another app running on the same device. This app is typically controlled by the enterprise administrator. The - enterprise administrator communicates restriction changes to the restrictions - provider app. That app, in turn, changes the restrictions on your app. + enterprise administrator communicates configuration changes to the managed + configuration provider app. That app, in turn, changes the configurations on your app.
- To provide externally configurable restrictions: + To provide externally managed configurations:
- Your app can support any restrictions you want to define. You declare the - app's restrictions in a restrictions file, and declare the - restrictions file in the manifest. Creating a restrictions file allows other - apps to examine the restrictions your app provides. Enterprise Mobility - Management (EMM) partners can read your app's restrictions by using Google + Your app can support any managed configuration you want to define. You declare the + app's managed configurations in a managed configurations file, and declare the + configurations file in the manifest. Creating a configurations file allows other + apps to examine the managed configurations your app provides. Enterprise Mobility + Management (EMM) partners can read your app's configurations by using Google Play APIs.
@@ -121,15 +124,17 @@ enterprise administrator to:- Note: Do not create localized versions of the restrictions - file. Your app is only allowed to have a single restrictions file, - so restrictions will be consistent for your app in all locales. + Note: Do not create localized versions of the + managed configuration file. Your app is only allowed to have a + single managed configurations file, so configurations will be + consistent for your app in all locales.
- In an enterprise environment, an EMM will typically use the restrictions - schema to generate a remote console for IT administrators, so the - administrators can remotely configure your application. + In an enterprise environment, an EMM will typically use the managed + configuration schema to generate a remote console for IT + administrators, so the administrators can remotely configure your + application.
@@ -158,10 +163,10 @@ enterprise administrator to:
- You use each restriction's android:key attribute to read its
- value from a restrictions bundle. For this reason, each restriction must have
- a unique key string, and the string cannot be localized. It must be
- specified with a string literal.
+ You use each configuration's android:key attribute to
+ read its value from a managed configuration bundle. For this reason,
+ each configuration must have a unique key string, and the string
+ cannot be localized. It must be specified with a string literal.
@@ -173,27 +178,29 @@ enterprise administrator to:
- The restrictions provider can query the app to find details on the app's - available restrictions, including their description text. Restrictions - providers and enterprise administrators can change your app's restrictions at - any time, even when the app is not running. + The managed configuration provider can query the app to find details + on the app's available configurations, including their description + text. Configurations providers and enterprise administrators can + change your app's managed configurations at any time, even when the + app is not running.
-- Your app is not automatically notified when other apps change its restriction - settings. Instead, you need to check what the restrictions are when your app - starts or resumes, and listen for a system intent to find out if the - restrictions change while your app is running. + Your app is not automatically notified when other apps change its + configuration settings. Instead, you need to check what the managed + configurations are when your app starts or resumes, and listen for a + system intent to find out if the configurations change while your + app is running.
- To find out the current restriction settings, your app uses a {@link - android.content.RestrictionsManager} object. Your app should check for the - current restrictions at the following times: + To find out the current configuration settings, your app uses a + {@link android.content.RestrictionsManager} object. Your app should + check for the current managed configurations at the following times:
- Once you have a {@link android.content.RestrictionsManager}, you can get the current restrictions - settings by calling its + Once you have a {@link android.content.RestrictionsManager}, you can get the + current configuration settings by calling its {@link android.content.RestrictionsManager#getApplicationRestrictions getApplicationRestrictions()} method:
@@ -229,8 +236,8 @@ enterprise administrator to:Note: For convenience, you can also fetch the current - restrictions with a {@link android.os.UserManager}, by calling {@link - android.os.UserManager#getApplicationRestrictions + configurations with a {@link android.os.UserManager}, by calling + {@link android.os.UserManager#getApplicationRestrictions UserManager.getApplicationRestrictions()}. This method behaves exactly the same as {@link android.content.RestrictionsManager#getApplicationRestrictions RestrictionsManager.getApplicationRestrictions()}. @@ -240,46 +247,46 @@ enterprise administrator to:
The {@link android.content.RestrictionsManager#getApplicationRestrictions getApplicationRestrictions()} method requires reading from data storage, so it should be done sparingly. Do not call this method every time you need to - know the current restrictions. Instead, you should call it once when your app - starts or resumes, and cache the fetched restrictions bundle. Then listen for - the {@link android.content.Intent#ACTION_APPLICATION_RESTRICTIONS_CHANGED - ACTION_APPLICATION_RESTRICTIONS_CHANGED} intent to find out if restrictions - change while your app is active, as described in Listen for - Device Configuration Changes. + know the current configuration. Instead, you should call it once when your app + starts or resumes, and cache the fetched managed configurations bundle. Then listen + for the {@link android.content.Intent#ACTION_APPLICATION_RESTRICTIONS_CHANGED + ACTION_APPLICATION_RESTRICTIONS_CHANGED} intent to find out if the configuration + change while your app is active, as described in + Listen for Managed Configuration Changes. -
The {@link android.content.RestrictionsManager#getApplicationRestrictions
getApplicationRestrictions()} method returns a {@link android.os.Bundle}
- containing a key-value pair for each restriction that has been set. The
+ containing a key-value pair for each configuration that has been set. The
values are all of type Boolean, int,
String, and String[]. Once you have the
- restrictions {@link android.os.Bundle}, you can check the current
- restrictions settings with the standard {@link android.os.Bundle} methods for
+ managed configurations {@link android.os.Bundle}, you can check the current
+ configuration settings with the standard {@link android.os.Bundle} methods for
those data types, such as {@link android.os.Bundle#getBoolean getBoolean()}
or
{@link android.os.Bundle#getString getString()}.
- Note: The restrictions {@link android.os.Bundle} contains - one item for every restriction that has been explicitly set by a restrictions - provider. However, you cannot assume that a restriction will be - present in the bundle just because you defined a default value in the - restrictions XML file. + Note: The managed configurations {@link android.os.Bundle} + contains one item for every configuration that has been explicitly set by a + managed configurations provider. However, you cannot assume that a + configuration will be present in the bundle just because you defined a default + value in the managed configurations XML file.
It is up to your app to take appropriate action based on the current
- restrictions settings. For example, if your app has a restriction specifying
- whether it can download data over a cellular connection, and you find that
- the restriction is set to false, you would have to disable data
- download except when the device has a Wi-Fi connection, as shown in the
- following example code:
+ managed configuration settings. For example, if your app has a
+ configuration specifying whether it can download data over a
+ cellular connection, and you find that the configuration is set to
+ false, you would have to disable data download except when
+ the device has a Wi-Fi connection, as shown in the following example code:
@@ -298,15 +305,15 @@ if (!appCanUseCellular) {
// ...show appropriate notices to user
}
-- Whenever an app's restrictions are changed, the system fires the + Whenever an app's managed configurations are changed, the system fires the {@link android.content.Intent#ACTION_APPLICATION_RESTRICTIONS_CHANGED ACTION_APPLICATION_RESTRICTIONS_CHANGED} intent. Your app has to listen for - this intent so you can change the app's behavior when the restriction settings + this intent so you can change the app's behavior when the configuration settings change.
@@ -327,26 +334,22 @@ if (!appCanUseCellular) {
BroadcastReceiver restrictionsReceiver = new BroadcastReceiver() {
@Override public void onReceive(Context context, Intent intent) {
- // Get the current restrictions bundle
- Bundle appRestrictions =
+ // Get the current configuration bundle
+ Bundle appRestrictions = myRestrictionsMgr.getApplicationRestrictions();
- myRestrictionsMgr.getApplicationRestrictions();
-
- // Check current restrictions settings, change your app's UI and
+ // Check current configuration settings, change your app's UI and
// functionality as necessary.
-
}
-
};
registerReceiver(restrictionsReceiver, restrictionsFilter);
Note: Ordinarily, your app does not need to be notified - about restriction changes when it is paused. Instead, you should unregister + about configuration changes when it is paused. Instead, you should unregister your broadcast receiver when the app is paused. When the app resumes, you - first check for the current restrictions (as discussed in Check Device Restrictions), then register your - broadcast receiver to make sure you're notified about restriction changes + first check for the current managed configurations (as discussed in + Check Managed Configurations), then register + your broadcast receiver to make sure you're notified about configuration changes that happen while the app is active.
diff --git a/docs/html/work/work_toc.cs b/docs/html/work/work_toc.cs deleted file mode 100644 index 10658c2e25d8e..0000000000000 --- a/docs/html/work/work_toc.cs +++ /dev/null @@ -1,44 +0,0 @@ -