Mevcut cihazları AMAPI'ye taşı

Özel DPC'niz tarafından yönetilen cihazlar Android Device Policy'ye taşınabilir ve Android Management API'den yararlanabilir.

Not: Bu süreç son kullanıcılar için şeffaftır. Bu tek yönlü bir işlemdir (tamamlandıktan sonra geri alınamaz) ve bir cihazı bir EMM'den diğerine taşımak için kullanılamaz.

Ön koşullar

  • Cihaz zaten EMM'niz tarafından özel bir DPC ile yönetiliyor.
  • Özel DPC'niz AMAPI SDK ile entegre edilmiştir.
  • Cihaz, Google Play EMM API'ye kaydettirilmiş olmalıdır.
  • Cihaz bir Managed Google Play Accounts grubuna aittir.
  • Cihaz, Android 9 veya sonraki bir sürümü çalıştırıyordur.
  • Şirkete ait cihazlarda iş profilleri söz konusuysa cihazın Android 11 veya sonraki bir sürümü çalıştırması gerekir.

Özel DPC'nizde AMAPI SDK ile entegrasyon

Taşıma süreci, özel DPC uygulamasının AMAPI SDK'sını entegre etmesini gerektirir. Bu kitaplık ve kitaplığı uygulamanıza nasıl ekleyeceğiniz hakkında daha fazla bilgiyi AMAPI SDK entegrasyon kılavuzunda bulabilirsiniz.

Not: Bu işlem, AMAPI SDK kitaplığının 1.1.4 veya daha yeni bir sürümünü gerektirir.

Cihaz taşıma adımları

  1. AMAPI'ye taşındıktan sonra cihaz tarafından kullanılması amaçlanan bir politika oluşturun. En iyi kullanıcı deneyimi için bu, DPC'niz tarafından cihazda zorunlu kılınan politikaya eşdeğer olmalıdır.
  2. enterprises.migrationTokens.create çağrısı yaparak cihaz için bir taşıma jetonu oluşturun.
  3. Bu taşıma jetonunun value değerini özel DPC'nize gönderin.
  4. Play EMM API'yi kullanarak cihaza Android Device Policy'nin yüklü olduğundan emin olun.
  5. DpcMigrationClient oluşturmak için DpcMigrationClientFactory aracını kullanın
  6. DpcMigrationClient üzerinde migrateDeviceManagementToAndroidManagementApi yöntemini çağırın. Taşıma işlemi tamamlanmış olur.
  7. deviceState değeri ACTIVE olarak değişir ve Pub/Sub kanalı üzerinden STATUS_REPORT mesajı alırsınız.

Taşıma işlemi tamamlandıktan sonra, çağrı yapan uygulama Cihaz Sahibi veya Profil Sahibi ayrıcalıklarını kaybeder ve Android Device Policy'ye aktarılır.

Not: Taşıma işleminin başlaması için cihazın internete bağlı olması gerekir. Bu süreç, taşıma sırasında ağ bağlantı kesintilerine karşı dayanıklı olacak şekilde tasarlanmıştır. Böylece ağ bağlantısı gerektiren anahtar işlemleri, cihaz sahibi veya profil sahibi haklarının DPC'nizden Android Device Policy'ye fiilen aktarılmasından önce gerçekleştirilir.

Taşıma jetonu

Özel bir DPC tarafından yönetilen belirli bir cihazı taşıma niyetini belirtmek için EMM sunucusu tarafından bir taşıma jetonu istenir. Taşıma jetonu, taşıma işlemi başarıyla tamamlanana veya süresi dolana kadar kullanılabilir.

Özel DPC entegrasyonu

Öncelikle bir DpcMigrationRequest oluşturmanız, jetonu ve gerekirse yapılandırılmış kablosuz ağların listesini oluşturucuya iletmeniz gerekir:

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

Daha sonra DpcMigrationClient kullanabilir ve taşıma işlemini migrateDeviceManagementToAndroidManagementApi ile başlatabilirsiniz:

// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
  // Use helper functiong 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
}

Taşıma işleminin ilerleme durumunu izleme

Taşıma süreci, cihazda bir DpcMigrationAttempt aracılığıyla izlenir.

Doğrudan migrateDeviceManagementToAndroidManagementApi tarafından döndürülen yöntemi kullanabilir veya taşıma denemelerini almak ve listelemek için getMigrationAttempt ve listMigrationAttempts yöntemlerini kullanabilirsiniz.

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

var attempt = client.getMigrationAttempt(request);

İsteğe bağlı olarak DpcMigrationAttempt durum güncellemelerini dinlemek için NotificationReceiverService öğenizi kullanarak bir DpcMigrationListener ayarlayabilirsiniz.

// 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
  }
}

Kablosuz ağları yönetme

Özel DPC tarafından yönetilen kablosuz ağlar varsa AMAPI'nin bu ağları sorunsuz bir şekilde yönetmeye başlayabilmesi için AMAPI ONC politikasının bu ağların yapılandırmalarıyla eşleşmesi gerekir. DPC taşıma işleminin kablosuz ağ yönetimiyle etkileşimi, yönetim moduna bağlı olarak değişiklik gösterir.

Şirkete ait cihazlardaki tümüyle yönetilen cihazlar ve iş profilleri

Android Device Policy, taşıma sırasında politikada yapılandırılmış herhangi bir kablosuz ağın, cihazdaki yapılandırılmış bir kablosuz ağın SSID'si ve güvenlik türüyle aynı olmasına sahip ağın, yapılandırılmış kablosuz ağ ile aynı olduğunu varsayar. Bu nedenle, taşıma işleminden sonra ağa karşılık gelen ONC politikasında bir değişiklik olana kadar özel DPC tarafından yapılandırılan kablosuz ağlara dokunulmaz. Ancak özel DPC taşıma işleminden sonra kaldırılırsa özel DPC tarafından yapılandırılan kablosuz ağlar otomatik olarak kaldırılır. Android Device Policy, politikayı uygulamaya devam eder ve politikada bu ağlardan herhangi biri yapılandırılmışsa politikada yapılandırılan ağlar her zamanki gibi eklenir.

Kişisel bir cihazda iş profili

Teknik nedenlerle, özel DPC tarafından yapılandırılan kablosuz ağların, söz konusu kablosuz ağları yönetmeye başlayabilmesi için Android Device Policy için özel DPC tarafından kaldırılması gerekir. AMAPI SDK, sahipliğini özel DPC'den Android Device Policy'ye aktarmadan önce bu konuyla ilgilenir ve bu kablosuz ağları kaldırır ancak özel DPC'nin bu ağlarla ilgili bilgileri DpcMigrationRequest'te iletmesini gerektirir. Taşıma işleminden sonra, politikada yapılandırılmış ağlar normal şekilde eklenir. Bu nedenle, özel DPC tarafından eklenen ağların da politikada yapılandırılması önerilir.

Dikkat edilmesi gereken bazı noktalar vardır:

  • Etkin ağ, özel DPC tarafından yapılandırılan bir kablosuz ağsa taşıma sırasında cihaz kısa süreliğine çevrimdışı olabilir.
  • Yalnızca özel DPC tarafından yapılandırılan kablosuz ağlar DpcMigrationRequest'te iletilmelidir.Aksi takdirde, bir ağ AMAPI SDK tarafından kaldırılamıyorsa (ör. kullanıcı tarafından eklenen kablosuz ağ) taşıma işlemi başarısız olur.
  • Kablosuz ağlar yalnızca özel DPC'nin kişiye ait bir cihazda profil sahibi olması durumunda DpcMigrationRequest'e iletilmesi gerekir. Aksi takdirde taşıma işlemi başarısız olur.
  • Teknik nedenlerle Android 12, DpcMigrationRequest içinde iletilen ağların yok sayıldığı ve özel DPC tarafından yapılandırılan tüm kablosuz ağların otomatik olarak kaldırıldığı istisnai bir durumdur. Ayrıca, özel DPC'nin Android 12'de kişiye ait cihazlardaki iş profilleri için ACCESS_WIFI_STATE iznine sahip olması zorunludur. Aksi takdirde taşıma işlemi başarısız olur.

Uyarılar

Bu özellikle ilgili dikkat edilmesi gereken bazı noktalar aşağıda verilmiştir.

Kuruluşa özgü kimlik

Android 12 ve sonraki sürümlerde bulunan iş profilleri için DevicePolicyManager.getEnrollmentSpecificId sürümünden erişilebilen kuruma özel kimlik, taşıma işlemi sırasında değişmemiştir. Ancak, cihazda tekrar Android Device Policy tarafından yönetilen bir iş profili oluşturulursa (örneğin, önceki profil silindikten veya cihaz fabrika ayarlarına sıfırlandıktan sonra) bu noktada kuruma özel kimlik değişir.

Tamamen yönetilen cihazlarda iş profilleri

Bu özellik, Android 9 veya 10 çalıştıran bir iş profiline sahip, tümüyle yönetilen cihazlarda desteklenmez. Bu cihazları taşımaya teşebbüs edilmemelidir ve bir hata oluşup oluşmadığından bağımsız olarak, bu tür cihazlar DPC taşıma işleminde desteklenmez.