Bu kılavuzda, cihazlar için cihaz politikası denetleyicisi (DPC) geliştirmek Android Enterprise dağıtımında kullanılabilir. Daha önce bilinen bir DPC uygulaması iş politikası denetleyici olarak, yerel cihaz politikalarını ve sistemi kontrol eder Google Play'de kullanılabilir.
DPC'ler hakkında
Android Enterprise dağıtımında kuruluş, İşle ilgili izole etme gibi çeşitli unsurları veya kullanıcıların onaylı uygulamaları önceden yapılandırma ve ya da cihaz özelliklerini (örneğin, kamera) devre dışı bırakabilir.
EMM olarak, müşterilerinizin şu ülkelerde kullanabileceği bir DPC uygulaması geliştiriyorsunuz: EMM konsolunuza ve sunucu. Müşteriniz DPC'yi, yönettiği kullanıcı cihazlarına dağıtır. DPC, EMM konsolunuz (ve sunucu) ile cihaz arasında köprü görevi görür. Bir yönetici, EMM konsolunu kullanarak şunlar da dahil bir dizi görevi gerçekleştirebilir: cihaz ayarlarını ve uygulamaları yapılandırma.
DPC, yüklü olduğu cihazda iş profilini oluşturur ve yönetir. İş profili, işle ilgili bilgileri şifreler ve bu bilgileri kullanıcıların kişisel uygulamalar ve veriler. İş profilini oluşturmadan önce DPC şunları da yapabilir: Cihazda kullanılmak üzere Managed Google Play Hesabı'nın temel hazırlığını yapma.
Bu kılavuzda, iş profilleri oluşturup yönetebilecek bir DPC'nin nasıl geliştirileceği gösterilmektedir.
EMM'ler için DPC Destek Kitaplığı
EMM'ler için DPC Destek Kitaplığı, şu özelliklere sahip yardımcı sınıflardan ve yardımcı sınıflardan oluşur: Kuruluşlardaki Android cihazların temel hazırlığını ve yönetimini kolaylaştırmak bahsedeceğim. Kitaplık sayesinde, bilgisayarınızdaki önemli özelliklerden DPC uygulamaları:
- Managed Google Play Hesapları temel hazırlık desteği: Temel hazırlık yönetiliyor DPC uygulamasındaki Google Play Hesapları için Google Play ve Google Play Hizmetleri uygulamaları minimum sürüm gereksinimlerini karşılar. Ancak, bu uygulamalar karmaşık olabilir. Bu güncellemeleri DPC destek kitaplığı çalışır ve ayrıca yönetilen Google Play Hesapları temel hazırlık işlemi. Managed Google Play Hesaplarına göz atın temel hazırlık desteğine göz atın.
- Yönetilen Yapılandırmalar desteği: Onaylı uygulamalara yönelik yönetilen yapılandırmaları yönetmek için Play EMM API'yi kullanmak yönetilen yapılandırmaları uygulamanın en kolay yoludur. DPC Desteği Kitaplık özelliği sayesinde, yönetilen uygulamaları uygulama görevi için Google Play'e yetki verebilirsiniz. yöneticinin EMM'nizi kullanarak belirlediği yapılandırmalar (eski adıyla uygulama kısıtlamaları) konsolu. Yönetilen yapılandırmaları yönetmek için Play EMM API'nin kullanılması yükleme sırasında atom olarak uygulanacak uygulama yapılandırması. Görüntüleyin Yönetilen yapılandırmaları uygulama Bu özelliğin nasıl etkinleştirileceğiyle ilgili daha fazla bilgi için kullandığınız DPC'nizdir.
Kitaplığı indirmek için aşağıdaki adımları uygulayın. Bu kılavuzda ayrıntılı olarak açıklanan görevler DPC Destek Kitaplığı'nın kullanımını varsayın.
DPC Destek Kitaplığı'nı indir
DPC Destek Kitaplığı'nı kullanmak için Android Enterprise EMM Sağlayıcı topluluğundan kitaplığı indirin. Kitaplığı build.gradle dosyanıza eklemeniz ve diğer bağımlılıklarıyla ilgili bilgi edineceksiniz. Örneğin, kitaplık 11.4.0 gerektirir Google Play Hizmetleri kimlik doğrulama istemci kitaplığı.
- Kitaplığı
build.gradle
dosyasına ekleyin:
Eski
implementation(name:'dpcsupport-yyyymmdd', ext:'aar')
Kotlin
implementation(name = "dpcsupport-yyyymmdd", ext = "aar")
- 11.4.0 ekle
Google Play Hizmetleri kimlik doğrulama istemci kitaplığını build.gradle dosyasına ekleyin:
Eski
implementation 'com.google.android.gms:play-services-auth:11.4.0'
Kotlin
implementation("com.google.android.gms:play-services-auth:11.4.0")
Kitaplığın çalışması için bazı izinler gerektiğinden bu izinleri DPC uygulamanızın manifest dosyasıyla ilgili bilgileri Google Play'e yüklediğinizde:
<uses-permission android:name= "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/> <uses-permission android:name= "android.permission.GET_ACCOUNTS"/> <uses-permission android:name= "android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name= "android.permission.WRITE_SYNC_SETTINGS"/> <uses-permission android:name= "com.google.android.providers.gsf.permission.READ_GSERVICES"/>.
Bu ön kurulum ve dağıtım adımlarına ek olarak, DPC kodunuzdaki belirli kitaplık işlevini, özelliği seçin. Ayrıntılar, bölümlerini inceleyin.
DPC oluştur
DPC'nizi, cihaz yönetimi uygulamaları için kullanılan mevcut model üzerinde oluşturun.
Özel olarak, uygulamanız
DeviceAdminReceiver
alt sınıfı (android.app.admin
paketinde (ör. paket)
Cihaz Yönetimi.
İş profili oluşturun
Temel bir iş profilinin nasıl oluşturulacağını gösteren bir örnek için bkz. BasicManagedProfile'da oturum açın.
Kişisel profili olan bir cihazda iş profili oluşturmak için:
önce cihazın bir iş profilini destekleyip desteklemediğini öğrenin;
kuruluşun varlığı
FEATURE_MANAGED_USERS
sistem özelliği:
Kotlin
if (!packageManager.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) { // This device does not support work profiles! }
Java
PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) { // This device does not support work profiles! }
Cihaz iş profillerini destekliyorsa intent göndererek bir iş profili oluşturun bir ACTION_PROVISION_MANAGED_PROFILE ile eyleme dökülebilir. (Bazı belgelerde yönetilen profil, iş profili ile aynı anlama gelen genel terim kullanılmaktadır.) Cihaz yöneticisi paket adını ekle ekstra olarak:
Kotlin
val provisioningActivity = getActivity() // You'll need the package name for the DPC app. val myDPCPackageName = "com.example.myDPCApp" // Set up the provisioning intent val adminComponent = ComponentName(provisioningActivity.applicationContext, MyAdminReceiver::class.java) provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString()) if (provisioningIntent.resolveActivity(provisioningActivity.packageManager) == null) { // No handler for intent! Can't provision this device. // Show an error message and cancel. } else { // REQUEST_PROVISION_MANAGED_PROFILE is defined // to be a suitable request code startActivityForResult(provisioningIntent, REQUEST_PROVISION_MANAGED_PROFILE) provisioningActivity.finish() }
Java
Activity provisioningActivity = getActivity(); // You'll need the package name for the DPC app. String myDPCPackageName = "com.example.myDPCApp"; // Set up the provisioning intent Intent provisioningIntent = new Intent("android.app.action.PROVISION_MANAGED_PROFILE"); ComponentName adminComponent = new ComponentName(provisioningActivity.getApplicationContext(), MyAdminReceiver.class); provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString()); if (provisioningIntent.resolveActivity(provisioningActivity.getPackageManager()) == null) { // No handler for intent! Can't provision this device. // Show an error message and cancel. } else { // REQUEST_PROVISION_MANAGED_PROFILE is defined // to be a suitable request code startActivityForResult(provisioningIntent, REQUEST_PROVISION_MANAGED_PROFILE); provisioningActivity.finish(); }
Sistem bu niyeti aşağıdakileri yaparak karşılar:
- Cihazın şifrelenmiş olduğunu doğrular. Açık değilse sistem, şifrelemesini sağlayın.
- İş profili oluşturur.
- Zorunlu olmayan uygulamaları iş profilinden kaldırır.
- DPC uygulamasını iş profiline kopyalar ve DPC'nin kendisini profil sahibi.
onActivityResult()
yönergesini şu şekilde geçersiz kıl:
temel hazırlığın başarılı olup olmadığına bakın:
Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { // Check if this is the result of the provisioning activity if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) { // If provisioning was successful, the result code is // Activity.RESULT_OK if (resultCode == Activity.RESULT_OK) { // Work profile created and provisioned. } else { // Provisioning failed. } return } else { // This is the result of some other activity. Call the superclass. super.onActivityResult(requestCode, resultCode, data) } }
Java
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // Check if this is the result of the provisioning activity if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) { // If provisioning was successful, the result code is // Activity.RESULT_OK if (resultCode == Activity.RESULT_OK) { // Work profile created and provisioned. } else { // Provisioning failed. } return; } else { // This is the result of some other activity. Call the superclass. super.onActivityResult(requestCode, resultCode, data); } }
İş profilini etkinleştirme işlemini tamamlayın
Profilin temel hazırlığı yapıldığında sistem, DPC'yi çağırır
uygulamanın
DeviceAdminReceiver.onProfileProvisioningComplete()
yöntemi. Geçersiz kıl
bu geri çağırma yöntemini kullanın.
Normal bir DeviceAdminReceiver.onProfileProvisioningComplete()
geri çağırma uygulaması şunları yapar:
- Cihazın EMM'nin cihaz politikalarına uyduğunu doğrular. Cihaz politikalarını ayarlama başlıklı makaleye bakın.
- Yöneticinin oluşturduğu sistem uygulamalarını etkinleştirir
DevicePolicyManager.enableSystemApp()
kullanılarak iş profilinde kullanılabilir. - Cihazda Managed Google Play kullanılıyorsa
Onaylı uygulamaların cihaza yüklenebilmesi için iş profilini kontrol edin.
- Managed Google Play Hesapları: Sorunsuz çalıştığından emin olun. ortam oluşturma ve Managed Google Play Hesabı ekleme işlemlerini gerçekleştirebilirsiniz. inceleyebilirsiniz.
- Google Hesapları:
AccountManager.addAccount()
hesabını kullanın.
İş profilini etkinleştirme
Bu görevleri tamamladıktan sonra cihaz politikası yöneticisinin
İş profilini etkinleştirmek için
setProfileEnabled()
yöntemi:
Kotlin
// Get the device policy manager val myDevicePolicyMgr = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager val componentName = myDeviceAdminReceiver.getComponentName(this) // Set the name for the newly created work profile. myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile") // ...and enable the profile myDevicePolicyMgr.setProfileEnabled(componentName)
Java
// Get the device policy manager DevicePolicyManager myDevicePolicyMgr = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); ComponentName componentName = myDeviceAdminReceiver.getComponentName(this); // Set the name for the newly created work profile. myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile"); // ...and enable the profile myDevicePolicyMgr.setProfileEnabled(componentName);
Cihaz politikalarını ayarlama
DPC uygulaması, kurumun gereklilikleri ve kısıtlamalarıdır. Örneğin, güvenlik politikası Belirli sayıda başarısız şifre girişiminden sonra cihazların kilitlenmesini gerektirebilir. DPC, mevcut politikalar için EMM konsolunu sorgular ve ardından politikaları uygular Cihaz Yönetim API'si.
Cihaz politikalarının nasıl uygulanacağıyla ilgili bilgi edinmek için bkz. Politikalar.
Yönetilen yapılandırmaları uygula iş uygulamalarına
Yönetilen yapılandırmalar, müşterilerinizin aşağıdakileri yapmasına olanak tanır: onayladıkları uygulamaları önceden yapılandırmalı ve bu uygulamaları uygulamalara kolayca erişebilmenizi sağlıyor. Şu tarihten önce bir uygulamayı yapılandırma: dağıtımı, kuruluşun güvenliğinin ve diğer politikaların karşılanmasını sağlar uygulamanın hedef cihaza yüklenmesinin ardından.
Uygulama özellikleri, uygulama geliştirici tarafından bir XML şeması ( yönetilen yapılandırmalar şeması) ekleyebilirsiniz. Play (uygulama geliştiriciler, ayrıntılı bilgi için Yönetilen Yapılandırmaları Ayarlama başlıklı makaleyi inceleyin).
Müşteri yöneticilerinize göstermek için bu şemayı uygulamadan alıyorsunuz EMM konsolunuzda, ayarlarını yapabilir ve yöneticilerin uygulama ayarlarını önceden yapılandırabilmesini sağlayabilirsiniz. Yönetici tarafından ayarlanan yönetilen yapılandırma genellikle bu EMM sunucusunda saklanır ve daha sonra Ayarlanacak Play EMM API Cihaz için yönetilen yapılandırmalar veya Managedconfigurationsforuser'i seçin. Görüntüleyin Yönetilen Yapılandırmalar inceleyebilirsiniz.
Yönetilen yapılandırmalar, Play EMM API kullanılarak uygulamaya uygulanabilir (önerilen yaklaşım) veya doğrudan DPC'den (Yönetilen yapılandırmaları uygulama bölümünde açıklanmıştır) doğrudan DPC'den alınabilir). Play EMM API'yi kullanma bazı avantajları vardır. Bunlar arasında kolayca uygulayabilirsiniz, DPC Destek Kitaplığı, DPC görevlerini basitleştirir. Buna ek olarak Play EMM API:
- Yeni bir uygulama yüklendiğinde yapılandırmayı atomik olarak ayarlar, böylece kullanıcı uygulamayı ilk kez başlattığında uygulamanın hazır olmasını sağlar.
- Yapılandırmaları kullanıcı bazında yönetmenize olanak tanır. Böylece temel hazırlığı cihaz bazında izlemekten kaçınabilirsiniz.
Yönetilen yapılandırmaları uygulamak için Play EMM API'si
Yönetilen yapılandırmalarda Play EMM API'yi kullanmak için DPC'nin Google Play'e gidin. DPC Destek Kitaplığı bu sorunu halleder proxy'si aracılığıyla sizin için Google Play tarafından gönderilen bir görevde geçerlidir.
Play'i kullanmak için EMM API, DPC Destek Kitaplığı'nı indirin seçeneğini tıklayın ve ardından DPC'nizde yönetilen yapılandırmalar desteğini etkinleştirin.
Şurada Yönetilen Yapılandırmalar desteğini etkinleştir: DPC'niz
Bu sınıfı DPC'nize aktarın:
com.google.android.apps.work.dpcsupport.ManagedConfigurationsSupport
Yönetilen yapılandırmalar kitaplığını başlatın. Bu örnekte, "admin" : DeviceAdminReceiver'ın ComponentName (Bileşen Adı) değerini alır.
Kotlin
var managedConfigurationsSupport = ManagedConfigurationsSupport(context, admin)
Java
ManagedConfigurationsSupport managedConfigurationsSupport = new ManagedConfigurationsSupport(context, admin);
Yönetilen yapılandırmaları etkinleştirin:
Kotlin
managedConfigurationsSupport.enableManagedConfigurations()
Java
managedConfigurationsSupport.enableManagedConfigurations();
DPC'nizde ilk kullanıma sunulan bu kitaplık sayesinde EMM'nizdeki Google Play EMM API yönetilen yapılandırmaları uygulamak yerine yönetilen yapılandırmaları bu görevleri doğrudan DPC’ye kodlamak. Görüntüleyin Ayrıntılı bilgi için Play üzerinden yönetilen yapılandırmalar başlıklı makaleyi inceleyin.
Yönetilen yapılandırmaları uygula doğrudan DPC'den
Bir uygulamanın yapılandırma ayarlarını doğrudan DPC'den değiştirmek için DevicePolicyManager.setApplicationRestrictions() yöntemi ve şu anda DPC uygulamasının DeviceAdminReceiver, hedef uygulamanın paket adı, ve İYS'den oluşan Paket Uygulamanın yönetici tarafından ayarlanan yönetilen yapılandırması. Görüntüleyin Performansınız DPC ve EMM konsolu etkileşime girin ve ayrıntılar için Yönetilen Yapılandırmalar ayarlayın. Ancak, bu alternatif yaklaşımın, yönetilen yapılandırmalarının Managed Google Play Accounts dağıtımlarında kullanılması önerilmez.
Managed Google Play Hesabı temel hazırlığı destek
DPC Destek Kitaplığı'nda destek sunulur. temel hazırlık için Managed Google Play Accounts Bu desteği kullanmak için önce emin olmanız gerekir, ardından çalışma ortamı ve Siteye Managed Google Play Hesabı.
Managed Google Play Accounts'u başlatma DPC'nizde destek
Bu sınıfı DPC'nize aktarın:
com.google.android.apps.work.dpcsupport.AndroidForWorkAccountSupport
Temel hazırlık uyumluluk kitaplığını başlatın. Bu örnekte "yönetici"
DeviceAdminReceiver
öğesinin ComponentName
.
Kotlin
var androidForWorkAccountSupport = AndroidForWorkAccountSupport(context, admin)
Java
AndroidForWorkAccountSupport androidForWorkAccountSupport = new AndroidForWorkAccountSupport(context, admin);
Ekibin çalışma ortamını Managed Google Play Accounts
DPC, profil sahibi modunda (ACTION_PROVISION_MANAGED_PROFILE
) veya cihazda bir cihazın temel hazırlığını yaptıktan sonra
sahip modunda (ACTION_PROVISION_MANAGED_DEVICE
), şu numarayı arayarak cihazın Managed Google Play Accounts'u destekleyebildiğinden emin olun:
Kotlin
androidForWorkAccountSupport.ensureWorkingEnvironment(callback)
Java
androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
Geri çağırma, bu işlemin başarılı veya başarısız olduğunu bildirir. Geri çağırma başarılı bir şekilde geri dönerse bir Managed Google Play Hesabı eklenebilir. Eğer geri çağırma bir hata bildirir, kullanıcıdan cihazın ağ bağlantısı varsa (örneğin, indirme işlemi başarısız olursa). Başka durumu Google'a bildirin.
Kotlin
object : WorkingEnvironmentCallback() { override fun onSuccess() { // Can now provision the managed Google Play Account } override fun onFailure(error: Error) { // Notify user, handle error (check network connection) } }
Java
new WorkingEnvironmentCallback() { @Override public void onSuccess() { // Can now provision the managed Google Play Account } @Override public void onFailure(Error error) { // Notify user, handle error (check network connection) } }
Managed Google Play Hesabı ekleyin
Android çerçevesinin AccountManager
Bir cihaza Managed Google Play Hesabı ekleyebilir. Etkileşimi kolaylaştırmak için
AccountManager
için yardımcı işlevi kullanın (aşağıdaki örnekte gösterilmektedir)
(DPC Destek Kitaplığı) İşlev
Google Play sunucusu tarafından döndürülen jetonu işler ve temel hazırlığı kolaylaştırır
Managed Google Play Hesabı. İşlev, Managed Google Play
Hesap geçerli bir durumda:
Kotlin
androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback)
Java
androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
token
: Google tarafından oluşturulan kullanıcı kimlik doğrulama jetonu Play EMM APIUsers.generateAuthenticationToken()
çağrısı.accountAddedCallback
: Managed Google Play Hesabını iade eder başarılı bir şekilde eklenmiş olmalıdır. Bu geri arama şunları içermelidir:onAccountReady()
veonFailure()
yöntemleri.
Kotlin
val workAccountAddedCallback = object : WorkAccountAddedCallback() { override fun onAccountReady(account: Account, deviceHint: String) { // Device account was successfully added to the device // and is ready to be used. } override fun onFailure(error: Error) { // The account was not successfully added. Check that the token // provided was valid (it expires after a certain period of time). } }
Java
WorkAccountAddedCallback workAccountAddedCallback = new WorkAccountAddedCallback() { @Override public void onAccountReady(Account account, String deviceHint) { // Device account was successfully added to the device // and is ready to be used. } @Override public void onFailure(Error error) { // The account was not successfully added. Check that the token // provided was valid (it expires after a certain period of time). } };
İlgili belgeler
- Device Management API hakkında daha fazla bilgi edinmek için bkz. Cihaz Yönetim.
- Android Enterprise temel hazırlık yöntemleri hakkında bilgi edinmek için bkz. Cihazların temel hazırlığını şurada yapın: Android Enterprise geliştirici kılavuzu.
- Temel bir iş profilinin nasıl oluşturulacağını gösteren bir GitHub örneğinde BasicManagedProfile bölümüne bakın.
- Diğer uygulamalarda yapılandırmaların nasıl ayarlanacağını gösteren bir GitHub örneği için profil sahibi, bakın AppRestrictionImplementr olacaktır.