Перенесите существующие устройства на AMAPI

Устройства, уже управляемые вашим пользовательским ЦОД, можно перенести в Android Device Policy и воспользоваться API управления Android.

Предварительные условия

  • Устройство уже управляется вашим EMM с помощью специального ЦОД.
  • Ваш собственный ЦОД интегрирован с AMAPI SDK .
  • Устройство зарегистрировано с помощью Google Play EMM API .
  • Устройство принадлежит предприятию с управляемыми аккаунтами Google Play .
  • Устройство работает под управлением Android 9 или более поздней версии.
  • Если рабочие профили используются на корпоративных устройствах, устройство должно работать под управлением Android 11 или более поздней версии.

Интегрируйте с AMAPI SDK в вашем собственном ЦОД.

Для процесса миграции требуется специальное приложение DPC для интеграции AMAPI SDK. Дополнительную информацию об этой библиотеке и о том, как добавить ее в свое приложение, можно найти в руководстве по интеграции AMAPI SDK .

Действия по переносу устройства

  1. Настройте политику , которая будет использоваться устройством после его перехода на AMAPI. Для лучшего взаимодействия с пользователем это должно быть эквивалентно политике, уже примененной на устройстве вашим ЦОД.
  2. Создайте токен миграции для устройства, вызвав enterprises.migrationTokens.create .
  3. Отправьте value этого токена миграции в свой собственный центр обработки данных.
  4. Убедитесь, что на устройстве установлена ​​политика Android Device Policy с помощью Play EMM API .
  5. Используйте DpcMigrationClientFactory для создания DpcMigrationClient
  6. В DpcMigrationClient вызовите migrateDeviceManagementToAndroidManagementApi . На этом миграция завершена.
  7. deviceState изменится на ACTIVE , и вы получите сообщение STATUS_REPORT через канал Pub/Sub .

После завершения миграции вызывающее приложение теряет свои права владельца устройства или владельца профиля, поскольку они передаются в политику устройств Android.

Примечание. Чтобы начать миграцию, устройство должно быть подключено к Интернету. Этот процесс разработан таким образом, чтобы быть устойчивым к отключениям сети во время процесса миграции, поэтому ключевые операции, требующие подключения к сети, выполняются до того, как произойдет фактическая передача прав владельца устройства или владельца профиля из вашего ЦОД в Android Device Policy.

Токен миграции

Токен миграции запрашивается сервером EMM, чтобы сигнализировать о намерении перенести конкретное устройство, которым управляет специальный центр обработки данных. Токен миграции можно использовать до успешного завершения миграции или до истечения срока его действия.

Индивидуальная интеграция ЦОД

Сначала нужно создать DpcMigrationRequest , передав токен и при необходимости список настроенных сетей Wi-Fi его создателю:

// Create a DpcMigrationRequest
DpcMigrationRequest request =
        DpcMigrationRequest.builder()
            .setMigrationToken(token)
            .build();

Затем вы можете использовать DpcMigrationClient и начать процесс миграции с migrateDeviceManagementToAndroidManagementApi :

// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
  // Use helper function to retrieve Admin component name
  var adminComponentName = getAdminComponent(context);

  ListenableFuture<DpcMigrationAttempt> futureAttempt =
          dpcMigrationClient.migrateDeviceManagementToAndroidManagementApi(
              new ComponentName(context, DpcMigrationNotificationReceiver.class),
              adminComponentName,
              request);
  // handle futureAttempt
} catch (RuntimeException e) {
  // send failure feedback: "Error: " + e
}

Отслеживайте ход миграции

Процесс миграции отслеживается на устройстве с помощью DpcMigrationAttempt .

Вы можете напрямую использовать тот, который возвращается migrateDeviceManagementToAndroidManagementApi , или использовать методы getMigrationAttempt и listMigrationAttempts для получения и составления списка попыток миграции.

// Passing an empty name, we retrieve the last attempt 
var request = GetDpcMigrationAttemptRequest.builder().build();

var attempt = client.getMigrationAttempt(request);

При желании вы можете настроить DpcMigrationListener с помощью NotificationReceiverService для прослушивания обновлений статуса для DpcMigrationAttempt .

// DpcMigrationNotificationReceiver for callback handling
public class DpcMigrationNotificationReceiver extends NotificationReceiverService
    implements DpcMigrationListener {

  @Override
  protected DpcMigrationListener getDpcMigrationListener() {
    // getDpcMigrationListener"
    return this;
  }

  @Override
  public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
    // send success feedback
  }
}

Работа с сетями Wi-Fi

Если существуют сети Wi-Fi, управляемые пользовательским ЦОД, политика AMAPI ONC должна соответствовать конфигурациям этих сетей, чтобы AMAPI мог беспрепятственно управлять ими. Взаимодействие миграции ЦОД с управлением Wi-Fi варьируется в зависимости от режима управления.

Полностью управляемые устройства и рабочие профили на корпоративных устройствах.

Во время миграции политика устройств Android предполагает, что любая сеть Wi-Fi , настроенная в политике и имеющая тот же SSID и тип безопасности, что и настроенная сеть Wi-Fi на устройстве, идентична соответствующей настроенной сети Wi-Fi. Следовательно, сети Wi-Fi, настроенные с помощью специального центра обработки данных, остаются нетронутыми после миграции до тех пор, пока не произойдет изменение политики ONC, соответствующей сети. Однако если пользовательский ЦОД удаляется после миграции, сети Wi-Fi, настроенные с помощью специального ЦОД, удаляются автоматически. Политика устройств Android продолжает применять политику, и если какая-либо из этих сетей настроена в политике, сети, настроенные в политике, добавляются как обычно.

Рабочий профиль на личном устройстве

По техническим причинам сети Wi-Fi, настроенные настраиваемым центром обработки данных, необходимо удалить с помощью настраиваемого центра обработки данных для политики устройств Android, чтобы начать управлять этими сетями Wi-Fi. AMAPI SDK позаботится об этом и удалит такие сети Wi-Fi перед передачей владения от пользовательского DPC политике устройств Android, но он требует, чтобы пользовательский DPC передавал информацию об этих сетях в DpcMigrationRequest . После миграции сети, настроенные в политике, будут добавлены обычным образом, поэтому рекомендуется, чтобы сети, добавленные пользовательским центром обработки данных, также были настроены в политике.

Есть некоторые моменты, о которых следует знать:

  • Если активной сетью является сеть Wi-Fi, настроенная пользовательским центром обработки данных, устройство может на короткое время находиться в автономном режиме во время миграции.
  • В DpcMigrationRequest следует передавать только сети Wi-Fi, настроенные пользовательским DPC, в противном случае миграция завершится неудачей, если сеть не может быть удалена с помощью AMAPI SDK (например, сеть Wi-Fi, добавленная пользователем).
  • Сети Wi-Fi следует передавать в DpcMigrationRequest только в том случае, если пользовательский DPC является владельцем профиля на личном устройстве, иначе миграция завершится неудачно.
  • По техническим причинам Android 12 — это исключительный случай, когда сети, переданные в DpcMigrationRequest игнорируются, а все сети Wi-Fi, настроенные пользовательским DPC, автоматически удаляются. Кроме того, пользовательскому ЦОД необходимо иметь разрешение ACCESS_WIFI_STATE на Android 12 для рабочих профилей на личных устройствах, иначе миграция не удастся.

Предостережения

Вот некоторые предостережения, связанные с этой функцией.

Идентификатор предприятия

Для рабочих профилей на Android 12 и более поздних версиях корпоративный идентификатор , доступ к которому можно получить из DevicePolicyManager.getEnrollmentSpecificId , не меняется во время миграции. Однако если на устройстве снова создается рабочий профиль, управляемый политикой устройств Android (например, после удаления предыдущего или после сброса настроек устройства), корпоративный идентификатор в этот момент изменится.

Рабочие профили на полностью управляемых устройствах

Эта функция не поддерживается на полностью управляемых устройствах с рабочим профилем под управлением Android 9 или 10. Не следует пытаться выполнить миграцию этих устройств, и независимо от того, возникает ли ошибка, такие устройства не поддерживаются для миграции DPC.