Ö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ı
- 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.
enterprises.migrationTokens.create
çağrısı yaparak cihaz için bir taşıma jetonu oluşturun.- Bu taşıma jetonunun
value
değerini özel DPC'nize gönderin. - Play EMM API'yi kullanarak cihaza Android Device Policy'nin yüklü olduğundan emin olun.
DpcMigrationClient
oluşturmak içinDpcMigrationClientFactory
aracını kullanınDpcMigrationClient
üzerindemigrateDeviceManagementToAndroidManagementApi
yöntemini çağırın. Taşıma işlemi tamamlanmış olur.deviceState
değeriACTIVE
olarak değişir ve Pub/Sub kanalı üzerindenSTATUS_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çinACCESS_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.