Google Play EMM API, herkese açık ve özel uygulamalar için aşağıdaki dağıtım yöntemlerini destekler:
- Kullanıcılar, Managed Google Play Store'dan uygulamaları manuel olarak yükleyebilir.
- BT yöneticileri, uygulamaları kullanıcıların cihazlarına uzaktan yükleyebilir.
Uygulamaları Managed Google Play Store'dan manuel olarak yükleme
Kullanıcının Device
'da policy
yükleyebileceği uygulamaları tanımlayabilir ve Devices.update
çağrısını yaparak bu ayarı yapabilirsiniz. Yeni bir cihaza temel hazırlığı yaparken, yönetilen Google Play Hesabı'nı cihaza eklemeden önce politikayı ayarlamanız gerekir. Aksi takdirde, hesap cihaza eklendikten sonra politika kısa bir süre boyunca uygulanmaz.
Managed Play Store davranışı, policy.productAvailabilityPolicy
değerine göre belirlenir:
all
: Play Store'daki herkese açık tüm uygulamalar kullanılabilir.whitelist
: Yalnızcapolicy.productPolicy
'te listelenen uygulamalar kullanılabilir.
Her iki durumda da policy.productPolicy
içindeki tüm uygulamalar varsayılan olarak kuruluşun mağaza düzenine eklenir. Kuruluşun mağaza düzeni, whitelist
seçildiğinde Managed Google Play'in ana sayfasıdır ve all
seçildiğinde "İş Uygulamaları" sekmesinden erişilebilir. Managed Google Play iFrame'sini yerleştirerek müşterinizin kuruluşun mağaza düzenini özelleştirmesine izin verebilirsiniz (Managed Google Play iFrame ile uygulamaları düzenleme bölümüne bakın).
Uygulamaları kullanıcıların cihazlarına uzaktan yükleme
Bir uygulamayı kullanıcının cihazına uzaktan yüklemek (itme yükleme olarak da bilinir) için Device
'ın policy
bölümünde policy.productPolicy.autoInstallPolicy
ayarını yapın. Yeni bir cihaza temel hazırlığı yaparken, yönetilen Google Play Hesabı'nı cihaza eklemeden önce politikayı ayarlamanız gerekir. Aksi takdirde, hesap cihaza eklendikten sonra politika kısa bir süre boyunca uygulanmaz.
autoInstallMode
şu şekilde ayarlanabilir:
doNotAutoInstall
: Uygulama otomatik olarak yüklenmez.autoInstallOnce
: Uygulama bir kez otomatik olarak yüklenir. Kullanıcı uygulamayı kaldırırsa tekrar yüklenmez.forceAutoInstall
: Uygulama otomatik olarak yüklenir. Kullanıcı uygulamayı kaldırırsa uygulama tekrar yüklenir. Yönetilen cihazlarda DPC,DevicePolicyManager.setUninstallBlocked
kullanarak kaldırma işlemini engellemelidir.
Başarısızlık durumunda (bağlantı kaybı, depolama alanı eksikliği vb.) yüklemeler başarılı olana kadar otomatik olarak yeniden denenir. Kurtarılamaz hatalar durumunda pil ve veri israfını önlemek için üstel geri çekilme yeniden deneme stratejisi uygulanır.
Yükleme önceliği
autoInstallPriority
ayarını yaparak yükleme sırasını seçebilirsiniz. Öncelik, işaretsiz bir tam sayı olmalıdır ve varsayılan değer 0'dır. Uygulamalar artan öncelik sırasına göre yüklenir. Yani öncelik değeri daha düşük olan uygulamalar önce yüklenir.
Kısıtlamalar yükleme
Yükleme sırasında cihazın gerekli durumunu kontrol etmenize olanak tanıyan bir autoInstallConstraint
ayarlayarak her uygulama için yükleme kısıtlamaları belirleyebilirsiniz:
- Cihazın kablosuz ağa bağlı olup olmayacağı,
- cihazın şarj edilip edilmemesi,
- ve cihazın boşta (kullanıcı tarafından etkin olarak kullanılmayan) olup olmayacağı.
Kısıtlamalar hemen karşılanmazsa etkilenen yüklemeler, kısıtlamalar karşılanana kadar sıraya alınır.
autoInstallConstraint
'te alanlar arasında VE kuralı uygulanır. Örneğin, aşağıdaki autoInstallConstraint
ile uygulamanın yüklenmesi için cihazın hem şarj ediliyor hem de sınırsız bir ağa (ör. kablosuz ağ) bağlı olması gerekir:
"autoInstallConstraint": [
"chargingStateConstraint" : "chargingRequired",
"networkTypeConstraint" : "unmeteredNetwork"
]
Yeni temel hazırlığı yapılan cihazlara uygulamaları otomatik olarak yükleme
Google Play EMM API, bir cihaz ilk kez hazırlandığında NewDeviceEvent
bildirimi gönderir. Yeni temel hazırlığı yapılan cihazlara uygulamaları otomatik olarak yüklemek için NewDeviceEvent
bildirimlerini dinleyin. Her NewDeviceEvent
'ten userId
ve deviceId
'yi alın, ardından ilgili cihazın politikasını ayarlamak için Devices.update
'i çağırın.
EMM bildirimlerine nasıl abone olunacağını öğrenmek için EMM bildirimlerini ayarlama başlıklı makaleyi inceleyin.
Uygulama otomatik yükleme hatası geri bildirimi
Uygulama yüklemeyle ilgili hatalar Uygulama Geri Bildirimi aracılığıyla bildirilir ve DPC, KeyedAppStatesService
üzerinden gönderilen EnterprisePolicyStatus
mesajını izleyebilir.
DPC'nin, Base64 kodlu verilerin kodunu çözmek için EnterprisePolicyStatus
proto tanımına göre sınıflar oluşturması gerekir. Proto sınıfları oluşturmayla ilgili talimatlar için Protocol Buffers belgelerine bakın.
Oluşturulan sınıflarla DPC, EnterprisePolicyStatus
nesnesinin kodunu çözebilir:
EnterprisePolicyStatus enterprisePolicyStatus = EnterprisePolicyStatus.parseFrom(
BaseEncoding.base64().decode(base64EncodedString)
);
Cihaz Politikası artık isteğe bağlı yeni PolicyId
alanını içeriyor.
EMM, politika oluştururken veya güncellerken belirli bir cihaz politikası sürümünü tanımlamak için PolicyId
değerini herhangi bir dize değerine ayarlayabilir.
Varsa uygulama yükleme geri bildirimi, PolicyId
değerini bildirir. Böylece DPC, alınan hataları belirli politikalarla eşleştirebilir.
EnterprisePolicyStatus
message EnterprisePolicyStatus {
// Individual status for an app in the policy
repeated ApplicationStatus app_status = 1;
// Version of the policy for which this status applies.
PolicyVersion version = 2;
}
ApplicationStatus
// Individual status for an app.
message ApplicationStatus {
// The package name for the app.
string package_name = 1;
// The install status for the app. Only includes status for apps scheduled
// to be auto-installed via the policy resource.
AutoInstallStatus install_status = 2;
}
AutoInstallStatus
// Auto-install status for an app.
message AutoInstallStatus {
// The error causing the install to fail if state is INSTALL_ERROR.
EnterpriseAutoInstallError error = 1;
// The current install state of the app.
EnterpriseAutoInstallState state = 2;
}
PolicyVersion
// The version of the policy which these install states apply to.
message PolicyVersion {
// A policy id which may be optionally set by the EMM.
string policy_id = 1;
}
EnterpriseAutoInstallError
// Install errors resulting in failure to install an app.
enum EnterpriseAutoInstallError {
// Catch-all for unrecognized enum values.
ENTERPRISE_AUTO_INSTALL_ERROR_UNKNOWN = 0;
// The app could not be found.
ENTERPRISE_AUTO_INSTALL_ERROR_NOT_FOUND = 1;
// The app is not available in the user's country.
ENTERPRISE_AUTO_INSTALL_ERROR_UNAVAILABLE_COUNTRY = 2;
// The app is not compatible with the device hardware.
ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE = 3;
// No license remained to grant ownership of the app, and the user did not
// already own the app.
ENTERPRISE_AUTO_INSTALL_ERROR_NO_LICENSES_REMAINING = 4;
// Required permissions for the app have not been accepted.
ENTERPRISE_AUTO_INSTALL_ERROR_MISSING_PERMISSION = 5;
// The app is not available based on the enterprise availability policy.
ENTERPRISE_AUTO_INSTALL_ERROR_NOT_APPROVED_OR_UNAVAILABLE = 6;
// The app is not available to the user or device.
ENTERPRISE_AUTO_INSTALL_ERROR_APP_UNAVAILABLE = 7;
// Failed to grant license because the user already has ownership.
ENTERPRISE_AUTO_INSTALL_ERROR_INCOMPATIBLE_OWNERSHIP = 8;
// The admin has not accepted the terms of service.
ENTERPRISE_AUTO_INSTALL_ERROR_TOS_NOT_ACCEPTED = 9;
// The device does not have enough RAM.
ENTERPRISE_AUTO_INSTALL_ERROR_INSUFFICIENT_RAM = 10;
// The app is incompatible with the device carrier.
ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_CARRIER = 11;
// The app is incompatible with the country or carrier.
ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_COUNTRY_OR_CARRIER = 12;
// The app is incompatible with the safe search level.
ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_SAFE_SEARCH_LEVEL = 13;
// The app could not be installed due to an installer error.
ENTERPRISE_AUTO_INSTALL_ERROR_INSTALL_FAILED = 14;
// The app could not be installed due to network errors.
ENTERPRISE_AUTO_INSTALL_ERROR_NETWORK_FAILED = 15;
// The device does not have enough storage.
ENTERPRISE_AUTO_INSTALL_ERROR_INSUFFICIENT_STORAGE = 16;
}
EnterpriseAutoInstallState
// The current install state for an app.
enum EnterpriseAutoInstallState {
// Catch-all for unrecognized enum values.
INSTALL_STATE_UNKNOWN = 0;
// The app has been received by Play but an install attempt has not completed
// yet.
INSTALL_STATE_PENDING = 1;
// The latest install attempt failed and will be retried automatically.
INSTALL_STATE_ERROR = 2;
// The app has been installed.
INSTALL_STATE_INSTALLED = 3;
}
Uygulamaları kapalı test için dağıtma
Kapalı test, uygulama geliştiricilerin uygulamalarının erken sürümleri hakkında güvenilir kullanıcılardan geri bildirim almasına olanak tanır. Geliştiriciler Google Play Console'da kapalı testler oluşturabilir. Play EMM API'yi, BT yöneticilerinin uygulamaların kapalı sürümlerini (kanal olarak da bilinir) belirli kullanıcılara dağıtmasına olanak tanımak için kullanırsınız. Kurumsal müşterileriniz bu özelliği yalnızca üçüncü taraf uygulamalarını değil, şirket içinde geliştirilen özel uygulamaları da test etmek için kullanabilir.
Uygun uygulamalar
Geliştiriciler, bir uygulamanın kapalı test kullanıcıları listesine kuruluş eklemeden önce uygulamanın aşağıdaki ölçütleri karşılaması gerekir:
- Uygulamanın üretim sürümü Google Play'de yayınlanmış olmalıdır.
- Google Play Console'da Managed Google Play, uygulamanın Gelişmiş Ayarlar sayfasında etkinleştirilir.
- Uygulamanın kapalı sürümleri sürüm kodu şartlarını karşılamalıdır.
Kapalı testlere kuruluş ekleme
Uygulama geliştiriciler, Kapalı Alfa Testi veya Google Gruplar'ı kullanan Alfa Testi yöntemlerini kullanan testlere kuruluş ekleyebilir. Talimatlar için açık, kapalı veya dahili test oluşturma kılavuzuna bakın. Geliştiricinin, katılan her kuruluşun kuruluş kimliğini (kurum kimliği olarak da bilinir) girmesi gerekir. BT yöneticileri, aşağıdaki adımları uygulayarak kuruluşlarının kimliğini üçüncü taraf uygulama geliştiricilere sağlayabilir:
- Managed Google Play Store'da oturum açın.
- Yönetici Ayarları'nı tıklayın.
- Kuruluş kimliğini içeren dizeyi Kuruluş bilgileri kutusundan kopyalayın ve geliştiriciye gönderin.
Özel uygulamalar için ek şartlar
Gizli uygulamalarda geliştiricinin, uygulamanın Gelişmiş Ayarlar sayfasındaki Managed Google Play sekmesine katılan her kuruluşun kuruluş kimliğini de eklemesi gerekir. Talimatlar için Özel uygulama yayınlama başlıklı makaleyi inceleyin.
Kapalı parçaları kullanıcılara dağıtma
Belirli bir uygulama için bir kuruluşun kullanabileceği parçaların listesini almak üzere Products.get
numaralı telefonu arayın. Yanıtta yer alan appTracks[]
listesi, her uygulama için kullanılabilen kanalları içerir. appTracks[].trackAlias
, kanalın EMM konsolunuzda görüntüleyebileceğiniz, kullanıcı tarafından okunabilen adıdır. appTracks[].trackId
ise kanalın makine tarafından okunabilen kimliğidir.
Bir kullanıcıya uygulamanın kapalı kanalını göstermek için Device
'nin policy
bölümünde policy.productPolicy[].trackIds[]
ayarını yapın. Bir cihaz için birden fazla kanal varsa en yüksek sürüm koduna sahip sürüm yüklenir.
trackIds, aşağıdaki gibi belirli senaryolarda Products.get
çağrısından otomatik olarak kaldırılır:
- Kanalın uygulama sürümü başka bir kanala veya üretime geçirilir.
- Üretim sürümü, kanaldan daha yüksek bir sürümle güncellenir.
- Bir geliştirici parçayı durdurur.
Ücretli uygulama lisanslarını takip etme
Ücretli uygulamalarda Grouplicenses
nesnesi, bir kuruluşun sahip olduğu ve kullanımda olan lisans sayısını izler. Bir uygulamanın lisans ayrıntılarını öğrenmek için Grouplicenses.get
numaralı telefonu arayabilirsiniz.
Ücretli bir uygulamanın cihaza yüklenebilmesi için kuruluşun uygulama için lisansa sahip olması gerekir. Lisans varsa uygulama cihaza yüklenir ve bir Entitlements
nesnesi oluşturulur. Entitlements
nesnesi, bir lisansı bir kullanıcıya bağlar ve uygulama için kullanılabilir lisans sayısını azaltır. Kullanılabilir lisans yoksa uygulama yükleme işlemi başarısız olur ve Entitlements
nesnesi oluşturulmaz.
Grouplicenses
ve Entitlements
nesneleri, ücretsiz olarak dağıtılan uygulamalar tarafından kullanılmaz.