Bu kılavuz, kurumsal mobilite yönetimi (EMM) sağlayıcılarının el değmeden kayıt işlemini gerçekleştirebiliyorlar. Kayıt hakkında daha fazla bilgi edinmek ve DPC'nizin (cihaz politikası denetleyici) cihazların temel hazırlığını yapmasına yardımcı olur. DPC'niz varsa cihazlara temel hazırlığı yaparken en iyi uygulamaları öğrenir ve geliştirme ile test konusunda yardımcı olacak tavsiyeler alırsınız.
BT yöneticileri için özellikler
BT yöneticilerinin doğrudan yapabilirsiniz. Bir BT yöneticisinin konsolunuzda tamamlayabileceği bazı görevler şunlardır:
- Mobil politikalarınıza göre el değmeden kayıt yapılandırmaları oluşturun, düzenleyin ve silin.
- BT yöneticinizin, kuruluşun satın alacağı gelecekteki cihazları hazırlayacak şekilde varsayılan bir yapılandırma ayarlayın.
- Cihazlara tek tek yapılandırmaları uygulayın veya el değmeden kayıttan cihazları kaldırın kayıt.
El değmeden kayıt hakkında daha fazla bilgi için şu sayfayı okuyun: overview (genel bakış) bölümüne bakın.
Ön koşullar
EMM konsolunuza el değmeden kayıt özelliğini eklemeden önce şu çözümü destekler:
- EMM çözümünüzün, şirkete ait bir Android 8.0 veya sonraki sürüm (Pixel 7.1 veya sonraki sürüm) cihazı için tümüyle yönetilen modda temel hazırlığı yapması gerekir. Şirkete ait Android 10 ve sonraki sürümlerin yüklü olduğu cihazlar tümüyle yönetilen veya bir iş profiliyle sağlanmış olmalıdır.
- El değmeden kayıt, DPC'yi otomatik olarak indirip yüklediğinden, DPC, Google Play'de mevcut olmalıdır. Uyumlu DPC'lerin listesini tutuyoruz BT yöneticileri tarafından müşteri API'si veya portalı üzerinden yapılandırılabilir. Bir EMM Sağlayıcı topluluğu aracılığıyla ürün değiştirme isteği sonra da DPC'nizi listeye ekleyebilirsiniz.
- Müşterilerinizin müşteri API'sini çağırabilmesi için el değmeden kayıt hesabı gerekir. Bir iş ortağı bayi, satın aldığını tespit edebilir.
- Cihaz, Google Mobil Hizmetleri (GMS) ile uyumlu olmalıdır. El değmeden kayıt için Google Play hizmetlerinin her zaman etkinleştirilmesi gerekir. düzgün şekilde çalışmasını sağlamalısınız.
API'yi çağırma
Konsolunuzun kullanıcıları (kendi Google Hesaplarını kullanarak) API isteklerinizi aşağıdaki amaçlarla yetkilendirir: API'yi kullanabilirsiniz. Bu akış, üzerinde gerçekleştirdiğiniz yetkilendirmeden farklıdır. diğer EMM API'lerini kullanın. Bunu uygulamanızda nasıl yapacağınızı öğrenmek için Yetkilendirme bölümünü okuyun.
Hizmet Şartları'nı işleme
Kullanıcılarınızın doğrulama işleminden önce en yeni Hizmet Şartları'nı kabul etmesi gerekir.
API'yi çağırmaktır. API çağrısı bir HTTP 403 Forbidden
durum kodu döndürüyorsa ve
yanıt gövdesi bir TosError
içeriyor, kullanıcıdan kabul etmesini iste
el değmeden kayıt portalında oturum açarak Hizmet Şartları'nı inceleyin. Aşağıdaki örnek
bunu yapmanın yollarından birini gösterir:
Java
// Authorize this method call as a user that hasn't yet accepted the ToS. final String googleApiFormatHttpHeader = "X-GOOG-API-FORMAT-VERSION"; final String googleApiFormatVersion = "2"; final String tosErrorType = "type.googleapis.com/google.android.device.provisioning.v1.TosError"; try { // Send an API request to list all the DPCs available including the HTTP header // X-GOOG-API-FORMAT-VERSION with the value 2. Import the exception: // from googleapiclient.errors import HttpError AndroidProvisioningPartner.Customers.Dpcs.List request = service.customers().dpcs().list(customerAccount); request.getRequestHeaders().put(googleApiFormatHttpHeader, googleApiFormatVersion); CustomerListDpcsResponse response = request.execute(); return response.getDpcs(); } catch (GoogleJsonResponseException e) { // Get the error details. In your app, check details exists first. ArrayList<Map> details = (ArrayList<Map>) e.getDetails().get("details"); for (Map detail : details) { if (detail.get("@type").equals(tosErrorType) && (boolean) detail.get("latestTosAccepted") != true) { // Ask the user to accept the ToS. If they agree, open the portal in a browser. // ... } } return null; }
.NET
// Authorize this method call as a user that hasn't yet accepted the ToS. try { var request = service.Customers.Dpcs.List(customerAccount); CustomerListDpcsResponse response = request.Execute(); return response.Dpcs; } catch (GoogleApiException e) { foreach (SingleError error in e.Error?.Errors) { if (error.Message.StartsWith("The user must agree the terms of service")) { // Ask the user to accept the ToS. If they agree, open the portal in a browser. // ... } } }
Python
# Authorize this method call as a user that hasn't yet accepted the ToS. tos_error_type = ('type.googleapis.com/' 'google.android.device.provisioning.v1.TosError') portal_url = 'https://partner.android.com/zerotouch' # Send an API request to list all the DPCs available including the HTTP # header X-GOOG-API-FORMAT-VERSION with the value 2. Import the exception: # from googleapiclient.errors import HttpError try: request = service.customers().dpcs().list(parent=customer_account) request.headers['X-GOOG-API-FORMAT-VERSION'] = '2' response = request.execute() return response['dpcs'] except HttpError as err: # Parse the JSON content of the error. In your app, check ToS exists first. error = json.loads(err.content) tos_error = error['error']['details'][0] # Ask the user to accept the ToS (not shown here). If they agree, then open # the portal in a browser. if (tos_error['@type'] == tos_error_type and tos_error['latestTosAccepted'] is not True): if raw_input('Accept the ToS in the zero-touch portal? y|n ') == 'y': webbrowser.open(portal_url)
Google API istemciniz ayrıntılı hataları (Java, Python veya HTTP) destekliyorsa
isteği için aşağıdaki değeri ile birlikte X-GOOG-API-FORMAT-VERSION
HTTP üstbilgisini dahil edin:
İsteğinizde 2
. İstemciniz ayrıntılı hataları desteklemiyorsa (.NET ve diğerleri) hata mesajını eşleştirin.
İleride Hizmet Şartları'nı güncellediğimizde, bu yaklaşımı benimserseniz uygulamanız Kullanıcı yeni Hizmet Şartları'nı tekrar kabul etmeye yönlendirir.
Portal bağlantısı
BT yöneticileri, kuruluşlarının kullanıcılarını yönetmek için el değmeden kayıt portalını kullanır. Bu özelliği müşteri API'si üzerinden sunamazsınız. BT yöneticileri ayrıca portalı kullanarak cihazları ve yapılandırmaları yönetmelerine olanak tanır. Konsoluzdan veya dokümanlarınızdan portala bağlantı vermeniz gerekiyorsa şu URL'yi kullanın:
https://partner.android.com/zerotouch
BT yöneticilerine, kendi hesaplarını kullanarak oturum açmaları gerektiğini ve Google Hesabı.
Cihaz kaydı
El değmeden kayıt, cihazları kaydettirmek için kullanılan bir mekanizmadır ve NFC gibidir kayıt veya QR kodu kaydı. Konsolunuzun yönetilen cihazları desteklemesi gerekir DPC'nizin tümüyle yönetilen cihaz modunda çalışabilmesi gerekir.
El değmeden kayıt, Android 8.0 veya sonraki sürümleri çalıştıran desteklenen cihazlarda kullanılabilir.
daha sonra. BT yöneticileri, desteklenen cihazları bir iş ortağından satın almalıdır.
bayisi. Konsolunuz,
BT yöneticisinin cihazlarından hangilerinin el değmeden kayıt için uygun olduğunu
customers.devices.list
aranıyor.
Aşağıda kayıt sürecinin işleyişi özetlenmiştir:
- Bir cihaz ilk başlatma sırasında (veya fabrikadan sonra) bir Google sunucusuyla iletişim kurar sıfırlama).
- BT yöneticisi cihaza yapılandırma uyguladıysa el değmeden kayıt özelliğini kullanabilirsiniz. kayıt, tümüyle yönetilen cihaz Android kurulum sihirbazını çalıştırır ve yapılandırma meta verileri içeren ekranlar.
- El değmeden kayıt, Google Play'den DPC'nizi indirip yükler.
- DPC'niz
ACTION_PROVISION_MANAGED_DEVICE
intent ve cihazın temel hazırlığını yapar.
İnternet bağlantısı yoksa kontrol, bağlantı kurulduğunda gerçekleşir. kullanılabilir. El değmeden kayıt ile cihaz temel hazırlığı hakkında daha fazla bilgi edinmek için: aşağıdaki Temel hazırlık bölümüne bakın.
Varsayılan yapılandırmalar
El değmeden kayıt, BT yöneticilerine varsayılan yapılandırma ayarladıklarında yardımcı olur
kuruluşun satın aldığı tüm yeni cihazlara uygulanır. Tanıtım ayarı
ayarlanmamışsa konsolunuzdan varsayılan bir yapılandırma. Web sitemiz g.co/newsinitiative/labs
üzerinden
customers.configurations.isDefault
değerini
kuruluşun varsayılan yapılandırma ayarlayıp ayarlamadığını öğrenebilirsiniz.
Aşağıdaki örnekte, mevcut bir yapılandırmayı varsayılan:
Java
// Send minimal data with the request. Just the 2 required fields. // targetConfiguration is an existing configuration that we want to make the default. Configuration configuration = new Configuration(); configuration.setIsDefault(true); configuration.setConfigurationId(targetConfiguration.getConfigurationId()); // Call the API, including the FieldMask to avoid setting other fields to null. AndroidProvisioningPartner.Customers.Configurations.Patch request = service .customers() .configurations() .patch(targetConfiguration.getName(), configuration); request.setUpdateMask("isDefault"); Configuration results = request.execute();
.NET
// Send minimal data with the request. Just the 2 required fields. // targetConfiguration is an existing configuration that we want to make the default. Configuration configuration = new Configuration { IsDefault = true, ConfigurationId = targetConfiguration.ConfigurationId, }; // Call the API, including the FieldMask to avoid setting other fields to null. var request = service.Customers.Configurations.Patch(configuration, targetConfiguration.Name); request.UpdateMask = "IsDefault"; Configuration results = request.Execute();
Python
# Send minimal data with the request. Just the 2 required fields. # target_configuration is an existing configuration we'll make the default. configuration = { 'isDefault': True, 'configurationId': target_configuration['configurationId']} # Call the API, including the FieldMask to avoid setting other fields to null. response = service.customers().configurations().patch( name=target_configuration['name'], body=configuration, updateMask='isDefault').execute()
DPC'nize atıfta bulunma
customers.dpcs.name
API kaynağı adını kullanmanızı öneririz
tanımlama ve yapılandırmalarda kullanma. Kaynak adı, DPC için benzersiz ve değişmeyen bir tanımlayıcı içerir. Telefonla arama
Desteklenen tüm öğelerin listesini almak için customers.dpcs.list
DPC'ler. Kaynak adı müşteri kimliğini de içerdiğinden, eşleşen bir Dpc
örneği bulmak için son yol bileşenini kullanarak listeyi filtreleyin. Örnek
DPC'nizi eşleştirme ve daha sonra bir
yapılandırma:
Java
// Return a customer Dpc instance for the specified DPC ID. String myDpcIdentifier = "AH6Gbe4aiS459wlz58L30cqbbXbUa_JR9...xMSWCiYiuHRWeBbu86Yjq"; final int dpcIdIndex = 3; final String dpcComponentSeparator = "/"; // ... for (Dpc dpcApp : dpcs) { // Because the DPC name is in the format customers/{CUST_ID}/dpcs/{DPC_ID}, check the // fourth component matches the DPC ID. String dpcId = dpcApp.getName().split(dpcComponentSeparator)[dpcIdIndex]; if (dpcId.equals(myDpcIdentifier)) { System.out.format("My DPC is: %s\n", dpcApp.getDpcName()); return dpcApp; } } // Handle the case when the DPC isn't found...
.NET
// Return a customer Dpc instance for the specified DPC ID. var myDpcIdentifer = "AH6Gbe4aiS459wlz58L30cqbbXbUa_JR9...fE9WdHcxMSWCiYiuHRWeBbu86Yjq"; const int dpcIdIndex = 3; const String dpcComponentSeparator = "/"; // ... foreach (Dpc dpcApp in dpcs) { // Because the DPC name is in the format customers/{CUST_ID}/dpcs/{DPC_ID}, check the // fourth component matches the DPC ID. String dpcId = dpcApp.Name.Split(dpcComponentSeparator)[dpcIdIndex]; if (dpcId.Equals(myDpcIdentifer)) { Console.WriteLine("Matched DPC is: {0}", dpcApp.DpcName); return dpcApp; } } // Handle the case when the DPC isn't found...
Python
# Return a customer Dpc instance for the specified DPC ID. my_dpc_id = 'AH6Gbe4aiS459wlz58L30cqb...fE9WdHcxMSWCiYiuHRWeBbu86Yjq' # ... for dpc_app in dpcs: # Because the DPC name is in the format customers/{CUST_ID}/dpcs/{DPC_ID}, # check the fourth component matches the DPC ID. dpc_id = dpc_app['name'].split('/')[3] if dpc_id == my_dpc_id: return dpc_app # Handle the case when the DPC isn't found...
Konsolunuzun kullanıcı arayüzünde bir DPC'nin adını göstermeniz gerekiyorsa
customers.dpcs.dpcName
öğesinden döndürülen değer.
Temel hazırlık yapılıyor
Cihaz temel hazırlığı için mükemmel bir kullanıcı deneyimi sunma fırsatını kaçırmayın.
Cihazın temel hazırlığı için yalnızca kullanıcı adı ve şifre yeterli olmalıdır.
Bayilerin cihazları doğrudan uzaktaki kullanıcılara gönderebileceğini unutmayın. EMM sunucusu veya kuruluş birimi gibi diğer tüm ayarları customers.configuration.dpcExtras
içine ekleyin.
Aşağıdaki JSON snippet'i, örnek bir yapılandırmanın bir bölümünü göstermektedir:
{
"android.app.extra.PROVISIONING_LOCALE": "en_GB",
"android.app.extra.PROVISIONING_TIME_ZONE": "Europe/London",
"android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED": true,
"android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": {
"workflow_type": 3,
"default_password_quality": 327680,
"default_min_password_length": 6,
"company_name": "XYZ Corp",
"organizational_unit": "sales-uk",
"management_server": "emm.example.com",
"detail_tos_url": "https://www.example.com/policies/terms/",
"allowed_user_domains": "[\"example.com\", \"example.org\", \"example.net\"]"
}
}
El değmeden kayıt, DPC'nizi bir Android Intent'i kullanarak yükler ve başlatır.
Sistem, SSCS'nin
DPC'nize android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE
JSON mülkü
ekstra özellikler olarak kullanabilirsiniz. DPC'niz, temel hazırlık ayarlarını şuradan okuyabilir:
Aynı anahtarları kullanarak PersistableBundle
.
Önerilen: Aşağıdaki intent ekstralarını kullanın şu adımları izleyin:
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
EXTRA_PROVISIONING_LOCALE
EXTRA_PROVISIONING_TIME_ZONE
EXTRA_PROVISIONING_LOCAL_TIME
EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED
EXTRA_PROVISIONING_MAIN_COLOR
EXTRA_PROVISIONING_DISCLAIMERS
Önerilmez - Aşağıdakileri eklemeyin diğer kayıt yöntemlerinde kullanabileceğiniz ekstra özellikler:
EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION
EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM
Bu ayarları DPC'nizde nasıl ayıklayacağınızı ve kullanacağınızı öğrenmek için Müşteri cihazlarını sağlama başlıklı makaleyi okuyun.
Geliştirme ve test
Konsolunuzun el değmeden kayıt özelliklerini geliştirip test etmek için şunlara ihtiyacınız olacaktır: şu:
- desteklenen bir cihaz
- müşteri el değmeden kayıt hesabı
El değmeden kayıt özelliğini destekleyen cihazlarla geliştirme ve test etme kaydı (örneğin, Google Pixel) gerektirir. Şunları yapmanız gerekmez: Geliştirme cihazlarınızı bir bayi iş ortağından satın almanız gerekir.
Bir test müşterisi hesabı almak ve el değmeden kayıt portalına gidin. olan kurumsal e-posta adresinizden bize e-posta gönderin. Bir Google ile ilişkili Hesap'a dokunun. Üreticiyi belirtin ve IMEI numarasını kullanarak, bunları geliştirme işleminize ekleyeceğiz. hesap.
Unutmayın, el değmeden kayıt özelliği, DPC'nizi test edebilmek için önce DPC'nizin Google Play'de mevcut olması gerekir temel hazırlık. PBM'nizin geliştirme sürümüyle test yapamazsınız.
BT yöneticileri için destek
Konsolunuzun arayüzünde veya belgelerinizde BT yöneticilerine yardımcı olmanız gerekiyorsa BT yöneticileri için el değmeden kayıt başlıklı makaleden yardım alabilirsiniz. Siz konsolunuzun kullanıcılarını bu yardım merkezi makalesine de yönlendirebilirsiniz.
Daha fazla bilgi
Hesabınıza el değmeden kayıt özelliğini entegre etmenize yardımcı olması için bu dokümanları okuyun. konsol:
- Android Enterprise Yardım'daki BT yöneticileri için el değmeden kayıt başlıklı makaleyi inceleyin.
- Android EMM'den müşteri cihazlarının temel hazırlığını yapma Geliştirici sitesi.