Cihazların temel hazırlığını yapın

Cihazların temel hazırlığını yapmanın birkaç yolu vardır. Hangi temel hazırlık yöntemlerini kullanmak istediğinizi müşterilerinizin işletme gereksinimleri belirler.

Cihaz temel hazırlığıyla ilgili temel bilgiler

Kullanacağınız çalışma modları (cihaz sahibi modu veya profil sahibi modu gibi) müşterilerinizin desteklemek istediği cihaz temel hazırlığı dağıtım senaryolarına (ör. KCG veya şirkete ait) göre belirlenir. Benzer şekilde, hangi temel hazırlık yöntemlerini uygulayacağınız, desteklemeniz gereken işlem modları ve Android sürümleri tarafından belirlenir.

Dağıtım senaryoları

Şirkete ait dağıtım senaryolarında kurum, çalışanlarının kullandığı cihazların sahibi olur ve bunları tümüyle kontrol eder. Genellikle kuruluşlar, cihazın tamamını sıkı bir şekilde izlemeleri ve yönetmeleri gerektiğinde şirkete ait cihazları dağıtır.

KCG dağıtım senaryosunu destekleyen şirketler, çalışanlarının kendilerine ait cihazları işe getirmelerine ve bu cihazları, ayrıcalıklı şirket bilgilerine ve uygulamalarına erişmek için kullanmalarına izin verir.

Çalışma modları

Şirkete ait dağıtımlar, cihaz sahibi çalışma moduyla desteklenir. Android'de, yönetim uygulamanıza cihaz politikası denetleyici (DPC) adı verilir. DPC, politikaları bir Android cihazda uygular ve cihaz sahibi olarak hareket ettiğinde cihazın tamamını yönetir. Cihaz sahibi olarak DPC, cihaz genelinde bağlantı yapılandırma, genel ayarları yapılandırma ve fabrika ayarlarına sıfırlama gibi cihaz genelinde işlemler gerçekleştirebilir.

KCG dağıtımları, profil sahibi işlem modu tarafından desteklenir. DPC aracılığıyla kuruluş, cihazdaki birincil kullanıcı hesabına bir iş profili ekleyerek kişisel cihazların iş amaçlı kullanılmasını sağlar. İş profili, birincil kullanıcıyla ilişkilendirilir, ancak ayrı bir profil olarak ilişkilendirilir. Profil sahibi olarak DPC yalnızca cihazdaki iş profilini yönetir ve iş profili dışında sınırlı kontrole sahiptir.

Eski cihaz dağıtımları, bir cihazın DPC sınırlı denetimine izin veren eski çalışma modu tarafından desteklenir (ör. bir cihazı silme, geçiş kodu gerektirme veya bazı politikaları zorunlu kılma). Kullanıcının Google Hesabı eklemesine izin vererek veya DPC'nizin eski cihaza Managed Google Play Hesabı eklemesini sağlayarak eski cihazlarda uygulama yönetimini Google Play üzerinden sağlayabilirsiniz.

Cihaz sahibi modunu veya profil sahibi modunu uygulayabileceğiniz dağıtımlarda eski mod önerilmez. Büyük bir filoda "ortak paydada en düşük" çözüm kullanmak yerine mümkün olan en yüksek düzeyde cihaz yönetimini kullanmalısınız.

Cihaz sahibi temel hazırlık yöntemleri

Yeni bir cihazın ilk kurulumu sırasında veya fabrika ayarlarına sıfırlandıktan sonra cihaz sahibi çalışma modunu sağlamanız gerekir. Cihaz sahibi modu, başka bir cihazda başka bir zamanda sağlanamaz.

Kullanım alanına bağlı olarak, cihaz sahibi modunun temel hazırlığını yapmak için 2 temel temel hazırlık yöntemi türü vardır.

  • Cihaz odaklı bir akışta, BT yöneticileri çok sayıda cihazın temel hazırlığını yapmak için NFC'yi kullanabilir. Bu akış, Managed Google Play Hesabı veya G Suite senaryolarında kullanılabilir.
  • Kullanıcı odaklı bir akışta, seçenekler kuruluşun G Suite kullanıp kullanmadığına bağlıdır.
    • G Suite senaryosunda, kullanıcı ilk cihaz kurulumu sırasında Google Hesabını ekler ve DPC, cihaz sahibinin ayarlarını yapma adımlarında kullanıcıyı yönlendirmelidir. Kullanıcı odaklı akış, son kullanıcıların yeni cihaz kurulumu yapmasına yardımcı olabilir ve cihazlar NFC'yi desteklemediğinde alternatif bir çözümdür.
    • Bir kuruluş G Suite'i kullanmıyorsa Managed Google Play Accounts yöntemini kullanmanız gerekir.

Not: Play'de uygulamanızın dağıtımını belirli ülkelere sınırlarsanız bu kısıtlamalar, cihaz sahibi temel hazırlığı sırasında yoksayılır. Cihaz hedeflenen ülkede olmasa bile DPC indirilir.

Profil sahibi temel hazırlık yöntemleri

Profil sahibi modunun temel hazırlığını yapmak için önerilen yöntem, kuruluşun G Suite kullanıp kullanmadığına bağlıdır.

  • G Suite örneğinde önerilen yöntem, kullanıcının Google Hesabını eklediği kullanıcı odaklı bir akıştır. DPC ise kullanıcıya profil sahibini ayarlama adımları boyunca rehberlik eder.
  • Bir kuruluş G Suite kullanmadığında, önerilen yöntem Managed Google Play Accounts yöntemidir.

Kullanıcının DPC'yi manuel olarak yüklemesi için talimat verilen geleneksel yöntem de desteklenir. Kullanıcının DPC'nizi Google Play'den indirip yüklemesi gerekir. Ardından DPC, profil sahibini ayarlama işleminin geri kalanında kullanıcıyı yönlendirir.

Eski cihazlar için temel hazırlık yöntemleri

Eski cihazlar, 5.0'dan önceki Android sürümlerini çalıştırır veya iş profillerini desteklemez. Eski bir cihazın temel hazırlığını yapmak için önerilen yöntem, kuruluşun yönetilen Google Hesapları kullanıp kullanmadığına bağlıdır.

  • Yönetilen Google Hesapları için önerilen yöntem, kullanıcının Google Hesabını eklediği ve DPC'nin kurulum adımlarında kullanıcıya rehberlik ettiği kullanıcı odaklı bir akıştır.
  • Bir kuruluş Managed Google Hesapları kullanmadığında önerilen yöntem, kullanıcının DPC'yi Google Play'den yüklediği Managed Google Play Accounts yöntemidir. DPC, hesabı bir iş profiline eklemeye benzer şekilde, eski bir cihaza da Managed Google Play Hesapları ekleyebilir.

Kullanıcıya DPC'yi manuel olarak yüklemesi için talimat verilen ve DPC'nin daha sonra bir Google Hesabı eklediği geleneksel yöntem de desteklenir. Kullanıcının DPC'nizi Google Play'den indirip yüklemesi gerekir. Ardından DPC kullanıcıya kurulum işleminin geri kalanında rehberlik eder.

Android sürümleri arasındaki temel temel hazırlık farklılıkları

Dağıtım
senaryosu
Çalışma şekli
Temel hazırlık
yöntemi
*5.0
Öncesi
5,0,
5,1
6.0,
daha sonra
7,0,
daha sonra
Şirkete ait Cihaz sahibi QR kodu
Managed Google Play Accounts
Google Hesabı
NFC
Eski Managed Google Play Accounts
Google Hesabı
KCG Profil sahibi Managed Google Play Accounts
Google Hesabı **5,1
Manuel DPC yükleme
Eski Managed Google Play Accounts
Google Hesabı
Manuel DPC yükleme

*Cihaz 5.0'dan sonraki bir Android sürümünü çalıştırıyor olsa bile, iş profillerini desteklemeyen cihazlar için de Eski mod önerilir. Bunlar genellikle RAM boyutu düşük olan cihazlardır.

**Android 5.1'deki Google Hesabı yöntemi yalnızca profil sahibi çalışma modunu destekler ve kullanıcı bu yöntemi yalnızca Ayarlar > Hesap ekle bölümünden yapılandırabilir.

Genel uygulamada dikkat edilmesi gereken noktalar

Hangi çalışma modunu uyguladığınıza bakılmaksızın, DPC'nizi yazarken göz önünde bulundurmanız gereken bazı noktaları aşağıda bulabilirsiniz.

Google Play Hizmetleri uyumluluğu

Google Play Hizmetleri APK kılavuzu, geliştiricilere API işlemleri gerçekleştirmeden önce Google Play Hizmetleri'nin sürüm kontrolünü gerçekleştirmeleri talimatını verir. Google Play Hizmetleri'ni güncellemeye çalışmak cihazın kurulum sürecinde ciddi kesintilere neden olduğundan, cihaz temel hazırlığı tamamlanmadan önce DPC'niz Google Play hizmetlerini güncellemeye çalışmamalıdır.

Google Play Hizmetleri ile DPC uyumluluğu hakkındaki önemli noktalar şunlardır:

  • DPC, belirli bir cihazla birlikte gönderilen Google Play Hizmetleri'ni kullanarak çalışmalıdır.
  • DPC, cihaz temel hazırlığı sırasında kullanımda olacak Google Play hizmetlerinin gelecekteki sürümlerinde bulunan yeni özellikleri esas almamalıdır.

Cihaz temel hazırlığı tamamlandığında DPC, kullanıcıdan Google Play hizmetlerini güncellemesini isteyebilir. Böylece DPC en yeni özellikleri kullanabilir. Bununla birlikte, bir özellik herhangi bir nedenle kullanılamıyorsa DPC sorunsuz bir şekilde cihazla birlikte gönderilen sürüme dönmelidir.

Cihaz ayrıntıları alınıyor

Yayılım gecikmeleri nedeniyle, devices.get çağrısının yeni kaydedilen bir cihazla ilgili olarak geri dönmesi 2 dakikayı bulabilir.

Son kullanıcının cihazı veya iş profilini kullanabilmesi için iş akışınız ayrıntıları gerektiriyorsa DPC'nizde bir ilerleme ekranı kullanmanızı ve görüşme başarılı olana kadar beklemenizi öneririz.

Profil sahibi modu için uygulamada dikkat edilmesi gereken noktalar

Profil sahibi çalışma modunu uygulamak için DPC'nizi yazarken göz önünde bulundurmanız gereken bazı noktaları aşağıda bulabilirsiniz.

Kişisel DPC'yi kaldırma veya devre dışı bırakma

Profil sahibi çalışma modunun temel hazırlığı yapılırken DPC, kişisel profilde çalışmaya başlar ve iş profili oluşturma işlemini başlatır. İş profili oluşturulduktan sonra DPC, iş profilinin içinde de çalışır. İş profilindeki DPC, temel hazırlık işlemini tamamlar. Bu noktada, kişisel profildeki DPC kendisini devre dışı bırakmalı veya cihaz kullanıcısı bunu kaldırmalıdır.

Kullanıcı kişisel DPC'yi kaldırır

  1. Kişisel DPC ACTION_MANAGED_PROFILE_PROVISIONED. dinler (Android 5.1 cihazlarda kişisel DPC bunun yerine ACTION_MANAGED_PROFILE_ADDED dinlemelidir.)
  2. Kişisel DPC bir kaldırma isteği (ACTION_UNINSTALL_PACKAGE) başlatır. Bu işlem, kullanıcıdan kişisel DPC'yi kaldırmasını ister. En iyi kullanıcı deneyimi için, kaldırma işlemi temel hazırlık akışı sırasında gerçekleştirilmelidir.

Kişisel DPC kendini devre dışı bırakır

  1. Kişisel DPC ACTION_MANAGED_PROFILE_PROVISIONED. dinler (Android 5.1 cihazlarda kişisel DPC bunun yerine ACTION_MANAGED_PROFILE_ADDED dinlemelidir.)
  2. Kişisel DPC, geçerliyse kendisini devre dışı bırakmadan önce cihaz yöneticisi ayrıcalıklarını serbest bırakmalıdır.
  3. Kişisel DPC, COMPONENT_ENABLED_STATE_DISABLED parametresiyle setApplicationEnabledSetting devre dışı bırakma isteği başlatır.
  4. Kullanıcı, kişisel DPC'yi Google Play'den yeniden etkinleştirebilir.

Cihaz sahibi modu için uygulamada dikkat edilmesi gereken noktalar

Cihaz sahibi çalışma modunu uygulamak için DPC'nizi yazarken göz önünde bulundurmanız gereken bazı noktaları aşağıda bulabilirsiniz.

Cihaz yeni veya fabrika ayarlarına sıfırlanmış olmalıdır

Yeni bir cihazın ilk kurulumu sırasında veya fabrika ayarlarına sıfırlandıktan sonra cihaz sahibi çalışma modunu sağlamanız gerekir. Cihaz sahibi modu, başka bir cihazda başka bir zamanda sağlanamaz.

Cihaz sahibi modu, DPC'ye bir cihaz üzerinde tam kontrol sağlar. İlk kurulumdan sonra cihaz sahibi moduna izin veriliyorsa:

  • Kötü amaçlı yazılımlar bir cihaz sahibi oluşturup cihazı ele geçirebilir.
  • Cihazda halihazırda bazı kullanıcı verileri veya uygulamalar varsa gizlilik sorunları ortaya çıkabilir.

Cihaz sahibi modunu yalnızca şirkete ait cihazlarda ayarlayın

Cihaz sahibi modunu yalnızca müşterinizin şirketine ait olarak tanımladığınız cihazlarda sağlamalısınız. Benzersiz bir cihaz tanımlayıcısı (seri numarası gibi) algılayarak veya EMM politikanız aracılığıyla cihaz kaydı için yetkilendirilmiş özel bir hesap kümesi kullanarak bunu doğrulayabilirsiniz.

Bir cihazın şirket sahipliğini doğrulayamıyorsanız cihaz sahibi modunun yanlışlıkla sağlanmaması için hataya karşı güvenli bir sistem oluşturmanız gerekir. Örneğin, cihaz sahibi modundan önce cihaz kullanıcısından onay vermesini veya olumlu bir işlem yapmasını isteyebilirsiniz.

Sistem uygulamalarını etkinleştirme

DPC bir iş profili sağladığında, başlatıcı simgesi olmayan tüm sistem uygulamalarının cihaz için kritik öneme sahip olduğu varsayılır ve bu uygulamalar otomatik olarak iş profilinde çalışmasına izin verilir. Başlatıcı simgelerine sahip sistem uygulamaları isteğe bağlı olarak kabul edilir ve bunları etkinleştirip etkinleştirmeyeceğinize siz karar verebilirsiniz.

Sistem uygulamalarını Google Play üzerinden etkinleştirme

Sistem uygulamalarını Google Play'i kullanarak etkinleştirmek kolaydır ve kullanıcılar uygulama güncellemelerini kullanıma sunuldukları anda alırlar.

Android çerçeve API'lerini kullanarak sistem uygulamalarını etkinleştirin

Kullanıcıların cihazlarını kullanmaya başlar başlamaz sistem uygulamalarını görmesini istiyorsanız cihaz temel hazırlığı işleminin bir parçası olarak sistem uygulamalarını etkinleştirin. DPC, sistem uygulamalarını DevicePolicyManager.enableSystemApp() kullanarak paket adına veya amaca göre etkinleştirir.

EMM konsolunuzda etkinleştirmek ve BT yöneticilerine sunmak istediğiniz sistem uygulamalarını tanımlamanın birkaç yolu vardır.

Sistem uygulaması katalogları oluşturma

Bu yöntemde her cihaz, cihazda hangi uygulamaların olduğunu belirler ve bu verileri EMM konsoluna geri gönderir. EMM konsolu cihaz politikası oluştururken bu verileri dinamik olarak gösterir. Böylece BT yöneticisinin uygulamaları uygulama bazında yönetmesini sağlar.

  1. Cihazda iş profilinin temel hazırlığı henüz yapılmamışsa queryIntentActivities() aracını kullanarak, cihazda başlatıcı simgeleri bulunan tüm uygulamaların listesini alın:
    private List getAppsWithLauncher() {
    Intent i = new Intent(Intent.ACTION_MAIN);
    i.addCategory(Intent.CATEGORY_LAUNCHER);
    return getPackageManager().queryIntentActivities(i, 0);
    }
  2. Cihazda iş profilinin temel hazırlığı zaten yapılmışsa PackageManager.GET_DISABLED_COMPONENTS ve PackageManager.GET_UNINSTALLED_PACKAGES kullanarak iş profilindeki tüm uygulamaların bir listesini alın.
  3. Bir uygulamanın, cihazın sistem resminde yüklü olup olmadığını belirten FLAG_SYSTEM işaretini işaretleyerek uygulamalar listesinde sistem uygulamalarını bulun.

Artıları:

  • BT yöneticilerine tüm cihazlardaki uygulamaların kapsamlı bir görünümünü sunar.
  • Hangi uygulamaların etkinleştirileceği üzerinde ayrıntılı kontrol sağlar.

Eksileri:

  • Her cihazın uygulama kataloğu farklı olduğundan, birden fazla cihaz türüne tek bir politika yapılandırması modeli uygulamak zordur.
  • OEM'ye özgü uygulamaların hacmini, BT yöneticilerine anlamlı bir şekilde sunmak zor olabilir.

Sistem uygulamalarını işleve göre kategorilere ayırma

Bir BT yöneticisi bir grup cihaz için sistem uygulamasını etkinleştirmek istediğinde, işlevlere dayalı olarak genel bir uygulama (ör. "Sistem Tarayıcı") seçer. DPC daha sonra bu amaç için tüm sistem uygulamalarına izin verir.

Artıları:

  • BT yöneticileri için basit, işlevsellik tabanlı etkinleştirme.
  • Çeşitli cihazlarda tutarlı işlevsellik sağlar (en azından yaygın kullanım alanları için).

Eksileri:

  • Sistem uygulamalarını, tüm cihaz türlerinde desteklenen uygulamalarla sınırlar.
  • BT yöneticileri, bir uygulamanın (Samsung® tarayıcı gibi) bir OEM sürümünü (ör. LG® tarayıcı) göndermek istemeyebilir.
  • BT yöneticileri birden fazla uygulama aktarmak istemeyebilir, ancak birden fazla amaç işleyici olduğunda bunu engelleyemez.

Yalnızca onaylanan sistem uygulamalarını destekleme

Belirli OEM paketlerini tanımlamak ve EMM konsolunda yalnızca bu paketleri desteklemek için OEM ile birlikte çalışırsınız. Bu, aynı zamanda OEM uygulaması için, yönetilen yapılandırmaları kataloglamanıza olanak tanır. OEM uygulaması Google Play'de barındırılmadığı için bu yapılandırmalardan haberdar olmazsınız.

Artıları:

  • Entegrasyon iş akışını büyük ölçüde basitleştirir ve ilk iki seçenekte sorunlu olan uç durumları ortadan kaldırır.
  • OEM uygulaması için yönetilen yapılandırmaları kataloglayabilir ve BT yöneticilerine EMM konsolunda sunabilirsiniz.
  • Ana cihazların desteklenmesi için OEM'lerle yakın ilişkiler kurulmasını sağlar.

Eksileri:

  • Ölçeklenebilirliği azalır ve sonuç olarak tüketici seçimini azaltır.

Eski mod için uygulamada dikkat edilmesi gereken noktalar

Eski çalışma modunu uygulamak için DPC'nizi yazarken göz önünde bulundurmanız gereken bazı noktaları aşağıda bulabilirsiniz.

Bir cihazın, iş profillerini destekleyip desteklemediğini

İş profillerini desteklemeyen cihazlarda eski çalışma modunu sağlayabilirsiniz. Bir cihaz aşağıdaki durumlarda iş profillerini desteklemez:

  • Android 5.0'dan önceki bir sürümü çalıştırıyorsa.
  • Android 5.0'dan sonraki bir sürümü çalıştırsa bile RAM miktarı düşük.

DPC, iş profillerinin desteklenip desteklenmediğini belirlemek için PackageManager'ı kullanabilir.

if (!getPackageManager().hasSystemFeature(
    PackageManager.FEATURE_MANAGED_USERS)) {
  // Use legacy mode
  ...
}

DPC'niz için test senaryoları

Test DPC, DPC uygulamanızdaki kurumsal işlevleri test etmek için Google tarafından sağlanan açık kaynaklı bir uygulamadır. Test DPC'yi github veya Google Play'den bulabilirsiniz. Test DPC'yi kullanarak:

  • Android'de özellikleri simüle etme
  • Politikaları belirleme ve zorunlu kılma
  • Uygulama ve intent kısıtlamalarını ayarlama
  • İş profilleri oluşturma
  • Tümüyle yönetilen Android cihazları ayarlama

Test DPC'yi temel olarak Android için kurumsal çözümünüzü test etmeye yönelik bir araç olarak tasarlanmış olsa da Android özellikleri için örnek kod kaynağı olarak da kullanabilirsiniz.

Temel hazırlığı özelleştirme

Cihaz temel hazırlığı sırasında sistem kullanıcı arayüzü, durum çubuğunda varsayılan bir renk ve ekranın üst kısmında varsayılan bir logo gösterir. DPC'niz ile sistem arayüzü arasında tutarlı bir görsel geçiş sağlamak için özel renkler ve logolar ayarlayın veya yöneticilerin bunu EMM konsolunuzu kullanarak yapmasına izin verin. Örneğin, bir yönetici şirket logosu yükleyebilir veya bildirimlerin gösterildiği ekranların görünümünü özelleştirebilir.

DPC'niz renk ve logo seçimlerini DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR ve DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI ek özelliklerini kullanarak uygular.

Özel bir renk ayarlamak için cihaz temel hazırlığı sırasında gösterilecek baskın rengi belirten bir tam sayı ayarlamak üzere EXTRA_PROVISIONING_MAIN_COLOR kodunu kullanın. ACTION_PROVISION_MANAGED_PROFILE veya ACTION_PROVISION_MANAGED_DEVICE ile ekstra (sabit) değeri bir amaca ekleyin.

Tam sayıların nasıl gösterildiğini görmek için Renk bölümüne bakın. Örneğin, TestDPC uygulamasında MAIN_COLOR başlığına bakın.

Özel logo ayarlamak için, cihaz temel hazırlığı sırasında ekranın üst kısmında gösterilecek bir resim ayarlamak üzere EXTRA_PROVISIONING_LOGO_URI uygulamasını kullanın. ACTION_PROVISION_MANAGED_PROFILE veya ACTION_PROVISION_MANAGED_DEVICE ile amaca ekstra (sabit) değeri ekleyin. Resim, cihaz için makul bir piksel yoğunluğuna sahip olmalıdır.

Örnek için TestDPC uygulamasında LOGO_URI öğesine bakın.

QR kodu yöntemi

QR kodu temel hazırlık yöntemi, kurulum sihirbazından bir QR kodu tarayarak cihaz sahibi modunu kurar ve yapılandırır. QR kodu, DPC'nin bir cihazı sağlaması için gereken tüm bilgileri içeren anahtar/değer çiftleri yükü içerir.

EMM konsolunuz, BT yöneticilerine temel hazırlığını yapmak istedikleri cihazlar için QR kodları oluşturmaları için bir yol sağlamalıdır. BT yöneticisi son kullanıcılara QR kodlarını gönderir, son kullanıcılar da QR kodlarını tarayarak cihazlarının temel hazırlığını yapar.

QR kodu temel hazırlığının kullanım alanları

Tabletler gibi bazı cihazlar NFC'yi desteklemez. QR kodu temel hazırlığı, NFC'yi desteklemeyen dağıtılmış cihazlardan oluşan bir filoyu sağlamanın kolay bir yoludur. BT yöneticisi, kullanıcı odaklı temel hazırlık işlemine izin vermek için kullanıcılarına QR kodları gönderebilir.

QR kodu temel hazırlığı, Google alanı veya Google Hesabı gibi bir Google kimliği gerektirmez. Android kullanan ancak G Suite kullanmayan kuruluşlarda Google kimliği yoktur.

NFC'de olduğu gibi, QR kodu temel hazırlığı da bir Google kimliğine (veya herhangi bir kimliğe) ihtiyaç duyulmadığı veya istenmediği durumlarda kiosk ve tek kullanımlık dağıtımlara olanak tanır. Örneğin, bir mağazadaki kiosk cihazı hiç kimseye ait değildir ve son kullanıcı kimliği olmamalıdır.

QR kodu oluştur

QR kodu temel hazırlığı için geçerli bir QR kodu, UTF-8 olarak kodlanmış JavaScript® Object Notation (JSON) dizesidir. Geçerli QR koduna şu özellikleri ekleyebilirsiniz:

Her zaman gerekli

Cihazda yüklü bir DPC yoksa gereklidir

Cihaz kablosuz ağa bağlı değilse önerilir

İsteğe bağlı

Bu örnek geçerli bir QR kodu oluşturur:

{
"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":
"com.emm.android/com.emm.android.DeviceAdminReceiver",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":
"gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w=",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION":
"https://path.to/dpc.apk",
    "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false,
    "android.app.extra.PROVISIONING_WIFI_SSID": "GuestNetwork",
    "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": {
        "dpc_company_name": "Acme Inc.",
        "emm_server_url": "https://server.emm.biz:8787",
        "another_custom_dpc_key": "dpc_custom_value"
    }
}

QR kodu temel hazırlık işlemi

  1. Kurulum sihirbazı, kullanıcıdan 6 kez Karşılama ekranına dokunmasını ister. Dokunmaların ekranda aynı yerde yapılması gerekir.
  2. Kurulum sihirbazı, kurulum sihirbazının bir QR kodu okuyucu indirebilmesi için kullanıcıdan internete bağlanmasını ister.
  3. Google Play Hizmetleri, QR kodu tanıma motoru içeren bir modül indirir.
  4. Kullanıcı, BT yöneticisi tarafından sağlanan QR kodunu tarar.
  5. Kurulum sihirbazı DPC uygulamanızı indirir ve ACTION_PROVISION_MANAGED_DEVICE uygulamasını kullanarak cihaz sahibi temel hazırlık işlemini başlatır.

Managed Google Play Accounts yöntemi

Bir DPC, cihaz sahibi modunu veya profil sahibi modunu ayarlamak için Managed Google Play Accounts temel hazırlık yöntemini kullanabilir. Bu temel hazırlık yöntemi, şu anda G Suite kullanmayan kuruluşları hedefler.

Managed Google Play Accounts temel hazırlık yöntemi, DPC Destek Kitaplığı'nı kullanır. Bu istemci kitaplığı, Managed Google Play Hesaplarının sorunsuz çalışmasını sağlar. Ayrıca, Managed Google Play Hesapları temel hazırlık sürecinde yapılacak güncellemelerle de uyumluluğu korur.

Cihazların temel hazırlığıyla ilgili ön koşullar

  • Kuruluş kimliği, EMM kimliğiyle oluşturulup kaydedilir ve Kuruluş Oluşturma ve Kaydetme bölümünde açıklandığı gibi ESA ayarlanır.
  • Kullanıcının kurumsal kimliği EMM konsolunuz tarafından tanınır.
  • Kullanıcı, EMM konsolunuz tarafından kabul edilen kimlik bilgilerini (genellikle kurumsal e-posta kimlik bilgilerini) kullanarak DPC uygulamasında oturum açabilir.

Profil sahibi modunu ayarla

KCG senaryosunda kişisel cihaz olarak kullanılan bir cihazda profil sahibi çalışma modunun temel hazırlığını yapabilirsiniz.

  1. Kullanıcı, DPC'nizi Google Play'den manuel olarak indirir ve başlatır.
  2. DPC, iş profilinin temel hazırlığını ACTION_PROVISION_MANAGED_PROFILE kullanarak yapar.
  3. Son kurulum adımlarını tamamlayın.

Cihaz sahibi modunu ayarlama

Yeni bir cihazın ilk kurulumu sırasında veya fabrika ayarlarına sıfırlandıktan sonra cihaz sahibi çalışma modunu sağlamanız gerekir. Cihaz sahibi modu, başka bir cihazda başka bir zamanda sağlanamaz.

Cihaz kurulumu sırasında kullanıcıdan hesap eklemesi istendiğinde kullanıcı, DPC'ye özel özel bir jeton girer. Jeton "afw#DPC_IDENTIFIER" biçimindedir. ACME adlı bir EMM için "afw#acme", ACME EMM'nin varsayılan DPC'sini yükler. Her EMM'nin temel hazırlık işleminde kullanabilmesi için önce Google'dan belirli bir DPC tanımlayıcısı istemesi gerekir.

  1. Kullanıcı yeni veya fabrika ayarlarına sıfırlanmış bir cihazı açtığında kurulum sihirbazı açılır.
  2. Hesap eklemeniz istendiğinde, kullanıcı EMM'nizin DPC'sini tanımlayan "afw#DPC_IDENTIFIER" biçiminde özel bir jeton girer.
  3. Kurulum sihirbazı, jetondaki DPC tanımlayıcısını kullanarak cihaza geçici bir Google Hesabı ekler. Bu geçici hesap yalnızca EMM'niz için Google Play'den DPC'yi indirmek amacıyla kullanılır ve son kurulum adımlarında kaldırılır.
  4. DPC, cihazın temel hazırlığını ACTION_PROVISION_MANAGED_DEVICE kullanarak yapar.
  5. Son kurulum adımlarını tamamlayın.

Eski modu ayarla

KCG senaryosunda kullanılan bir cihazda, iş profillerini desteklemiyorsa eski çalışma modunu kişisel cihaz olarak sağlayabilirsiniz.

  1. Kullanıcı, DPC'nizi Google Play'den manuel olarak indirir ve başlatır.
  2. DPC kendisini cihaz yöneticisi olarak ayarlar.
  3. Son kurulum adımlarını tamamlayın.

Tüm çalışma modları için son kurulum adımları

Bu adımları yalnızca profil sahibi modu, cihaz sahibi modu veya eski modun ayarlanmasına ilişkin ilk adımlar tamamlandıktan sonra uygulayın.

  1. DPC, DPC Destek Kitaplığı'nı başlatarak cihazın Managed Google Play Hesaplarını destekleyebilmesini sağlar:
    AndroidForWorkAccountSupport androidForWorkAccountSupport = 
        new AndroidForWorkAccountSupport(context, admin);
    androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
  2. Bir cihazda cihaz sahibi modunu ayarlıyorsanız bu adım, DPC'yi indirmek için eklenmiş olan geçici Google Hesabı'nı kaldırır.
  3. Kullanıcı, EMM kimlik bilgilerini kullanarak DPC'de oturum açar. Bunlar genellikle kurumsal e-posta kimlik bilgileridir.
  4. DPC, kimliği doğrulanmış kurumsal kullanıcı için EMM konsolundan Managed Google Play Hesabı kimlik bilgileri ister.
  5. EMM konsolunda kullanıcı için bir Google Play userId yoksa bu, Users.insert() yöntemini çağırarak yeni bir kullanıcı oluşturur. Cihaz sahibi modunda temel hazırlık yapıyorsanız bir cihaz hesabı (özel cihaz dağıtımları için) veya kullanıcı hesabı (şirkete ait dağıtımlar için) belirtin.

    Not: Kullanıcı kimlikleri EMM'ye özel olduğundan, kuruluşun kaydı iptal edilip farklı bir EMM ile yeniden kaydolursa yeniden kullanılamazlar.

  6. Devices.update yöntemini çağırarak cihazın politikasını ayarlayın. Politikayı, Managed Google Play Hesabını cihaza eklemeden önce ayarlamanız gerekir. Aksi takdirde politika, hesap cihaza eklendikten sonra kısa bir süre içinde uygulanmaz.

  7. EMM konsolu Users.generateAuthenticationToken() yöntemini çağırarak userId için hesap kimlik bilgilerini ister. Bu kimlik doğrulama jetonu kısa ömürlüdür ve yeniden kullanılamaz. DPC, hesabı programatik olarak eklemek için jetonu kullanmalıdır (son kullanıcıya yardımcı olmaz).
  8. Google Play EMM API, kimlik doğrulama jetonunu EMM konsoluna geri döndürür.
  9. EMM konsolu, kimlik doğrulama jetonunu DPC'ye yönlendirir.
  10. DPC,
    androidForWorkAccountSupport.addAndroidForWorkAccount(token,
        accountAddedCallback);
    kullanarak Managed Google Play Hesabını cihaza ekler.

Google Hesabı yöntemi

DPC, cihaz sahibi modunu, profil sahibi modunu veya eski modu ayarlamak için Google Hesabı temel hazırlık yöntemini kullanabilir. Google Hesabı temel hazırlık yöntemi ile DPC, kullanıcı ilk cihaz kurulumu sırasında Google Hesabını ekledikten sonra kullanıcıya temel hazırlık adımlarında rehberlik eder.

Kullanıcı, Google Hesabı kimlik bilgilerini girdiğinde:

  • Google kimlik doğrulama sunucusu, kullanıcı hesabının kimliğini doğrular.
  • Ardından kimlik doğrulama sunucusu, hesabın alan adının bir G Suite alanı veya EMM tarafından yönetilen bir alan olarak kayıtlı olup olmadığını öğrenmek için kurumsal sunucuyla iletişim kurar.
  • Bu durumda sistem, alanla ilişkili DPC'yi otomatik olarak Google Play'den indirir ve yükler.

Profil sahibi modunu ayarla

Profil sahibi çalışma modunu, bir cihazın ilk kurulumu sırasında veya kullanıcı hesap eklerken Ayarlar > Hesap ekle'yi kullanarak sağlayabilirsiniz.

  1. Hesap kimlik doğrulaması, kurulum sihirbazından veya Ayarlar > Hesap ekle'den bir kullanıcı tarafından başlatılır.
  2. GMSCore, ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE kullanarak iş profili temel hazırlığını başlatır.

  3. DPC otomatik olarak cihaza indirilir ve iş profili temel hazırlığının DPC tarafından desteklendiğini doğrulamak için ACTION_GET_PROVISIONING_MODE işleyici kullanılarak başlatılır. EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE: İş profili için ek bilgiler (ör. e-posta adresi). DPC ayrıca bu paketin bir parçası olarak is_setup_Whridor adını da alır. Bu paket, ACTION_GET_PROVISIONING_MODE ve ACTION_ADMIN_POLICY_COMPLIANCE işleyicilerine dahil edilecek.
    EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATEYeni iş profiline taşınacak kimliği doğrulanmış hesabın adı.

  4. Platform, iş profili temel hazırlığını gerçekleştirir.

  5. İş profilinin temel hazırlığı yapıldığında DPC, yayını alır
    ACTION_PROFILE_PROVISIONING_COMPLETE. DPC'nin ACTION_ADMIN_POLICY_COMPLIANCE işleyicisi iş profilinde başlatılır.
    İş profili oluşturulduktan sonra DPC, iş profilinin içinde de çalışır. DPC, yönetilen söz konusu Google Hesabı için politikaları aktarır, cihazın güvenliği ihlal edilmiş durumda olmamasını sağlar ve politikaların uygulandığını (ör. şifre gerektirme) doğrular.

  6. Kişisel profildeki DPC kendisini devre dışı bırakır veya kullanıcı tarafından kaldırılır.

Cihaz sahibi modunu veya ETBM'yi ayarlayın

Yeni bir cihazın ilk kurulumu sırasında veya fabrika ayarlarına sıfırlandıktan sonra cihaz sahibi çalışma modunu sağlamanız gerekir. Cihaz sahibi modu başka cihazlarda cihaza eklenemez.

  1. Hesap kimlik doğrulaması, kurulum sihirbazından bir kullanıcı tarafından başlatıldı.
  2. GMSCore, ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE kullanarak cihaz sahibi temel hazırlığını başlatır. 3.DPC cihaza otomatik olarak indirilir ve istenen temel hazırlık modunu seçmek için GET_PROVISIONING_MODE işleyici kullanılarak başlatılır. EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE: İş profili için yerel ayar, kablosuz ağ, e-posta adresi gibi ek bilgiler. DPC ayrıca bu paketin bir parçası olarak is_setup_Whridor adını da alır. Bu paket, ACTION_GET_PROVISIONING_MODE ve ACTION_ADMIN_POLICY_COMPLIANCE işleyicilerine dahil edilecek.
  3. Platform, cihazı istenen temel hazırlık moduna sağlar.
  4. Cihazın temel hazırlığı yapıldığında DPC bu yayınları alır ve DPC'nin ACTION_ADMIN_POLICY_COMPLIANCE işleyicisi başlatılır:
    ACTION_READY_FOR_USER_INITIALIZATION
    ACTION_PROFILE_PROVISIONING_COMPLETE.

  5. DPC, cihazın yeni veya fabrika ayarlarına sıfırlanmış (temel hazırlığı yapılmamış) olduğunu doğrulamak için Global.DEVICE_PROVISIONED değerini kullanır:
    0 - Temel hazırlık yapılmadı.
    1: Temel hazırlığı yapıldı.

  6. DPC, yönetilen söz konusu cihaz için politikaları aktararak, cihazın güvenliği ihlal edilmiş durumda olmadığından emin olarak ve politikaların zorunlu kılındığını doğrulayarak (ör. şifre gerektirme) temel hazırlık işlemini tamamlar.

Eski modu ayarla

Eski çalışma modunun temel hazırlığını, cihazın ilk kurulumu sırasında veya kullanıcı Ayarlar > Hesap ekle'ye giderek hesap eklediğinde sağlayabilirsiniz. Managed Google Play'i Google Hesabı olan kullanıcılara sunma şartları şunlardır:

  • Google Hesabı, yönetilen bir Google alanının parçasıdır.
  • Yönetilen Google alanı, Google Play EMM API'ye bağlı bir EMM ile Android için ayarlanmış olmalıdır.

Yalnızca eski cihazlarda uygulama yönetimi yapmak istiyorsanız DPC'ye ihtiyacınız yoktur. Bu durumda kullanıcı, Ayarlar > Hesap ekle'ye Google Hesabını ekler. Uygulama yönetimi; önerilen uygulamaları seçme, özel uygulamaları kullanıma sunma ve lisans satın alma ile dağıtma işlemlerini içerir.

DPC'nizin Google Hesabını eklemesini istiyorsanız:

  1. Kullanıcı DPC'nizi Google Play'den indirir ve başlatır.
  2. DPC, AccountManager.addAccount() kullanarak yönetilen Google Hesabı'nı ekler. AccountManager.KEY_ACCOUNT_NAME kullanarak belirli bir Google Hesabı'nı eklemeye ilişkin örnek uygulama için TestDPC sayfasına bakın.
  3. (İsteğe bağlı) DPC, kendisini cihaz yöneticisi olarak ayarlar. Cihaz yöneticisi olarak DPC, uygulama yönetiminin ötesinde cihaz yönetimi özelliklerine sahiptir.

Google Hesabı yöntemi için uygulamada dikkat edilmesi gereken noktalar

  • DPC, kullanılan başlatma amacındaki belirli ekstra özelliklere bakarak Google Hesabı kimlik doğrulama akışını algılamalıdır (bkz. LaunchIntentUtil):

    • android.accounts.Account türündeki hesap: Hesabın, kurulum sihirbazından veya Ayarlar > Hesap ekle'den eklendiğini belirtir. Bu işlem, cihazı ya da profili yönetmek için başlatılan DPC'nin kullanılmasını gerektirir.
    • Boole türünde is_setup_wizard: True (doğru) değerine ayarlanırsa DPC, kurulum sihirbazı tamamlanmadan önce kurulum sihirbazında başlatıldı, aksi takdirde Ayarlar > Hesap ekle'den veya başka bir akıştan başlatıldı.

    DPC'nin Google Hesabı yöntemi kapsamında kullanıma sunulup sunulmadığının basit bir kontrolü şu şekildedir:

boolean isSynchronousAuthLaunch(Intent launchIntent) {
  return launchIntent.hasExtra(“is_setup_wizard”);
}
  • DPC, kurulumu tamamlamadan finish() işlevini çağırmamalıdır. DPC startActivityForResult() ile başlatıldığından ve bir sonuç beklediğinden pozitif bir sonuç kodu da (ör. RESULT_OK) döndürmelidir.

    DPC kurulum akışı, ACTION_PROVISION_* amacı gönderme noktasına ulaşırsa DPC, finish() çağrısı yapmadan önce temel hazırlık işleminden sonuç kodunu beklemelidir. ACTION_PROVISION_* amaçlarını başlatırken startActivityForResult() ve onActivityResult() geri çağırmalarını kullanın. (Örnekler için LaunchActivity ve SetupSyncAuthManagement belgelerini inceleyin).

    Kurulum işleminin eşzamansız olma olasılığından dolayı, DPC, temel hazırlığın başarılı olduğunu belirtmek için RESULT_OK sonuç kodunu kullanamaz. Tek garantili yol, temel hazırlığın başarılı olması için DeviceAdminReceiver geri çağırmalarına güvenmektir. RESULT_CANCELED, kullanıcının kurulum akışının eşzamanlı bir kısmında yedeklendiğini ve DPC'nin buna tepki vermesi gerektiğini belirtir.

    Bu örnekte, DPC temel hazırlığı başlatır ve bir etkinlikten elde edilen sonuç kodunu bekler:

Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE);
startActivityForResult(intent, REQUEST_MANAGED_PROFILE);
    ...
    @Override
        public void onActivityResult(int req, int res, Intent i) {
            if (req == REQUEST_MANAGED_PROFILE) {
                if (res == Activity.RESULT_OK) {
                    setResult(Activity.RESULT_OK);
                    finish();
                } else {
                    Toast.makeText(this, “Provisioning failed”,
                            Toast.LENGTH_SHORT).show();
                }
            }
        }
  • Cihazın temel hazırlığı önceden yapılmışsa DPC, cihaz sahibi çalışma modunu ayarlamayı denememelidir (bkz. ProvisioningStateUtil.isDeviceProvisioned()). Bu örnekte DPC, cihazın temel hazırlığının yapılıp yapılmadığını kontrol eder:
public static boolean isDeviceProvisioned(Context context) {
ContentResolver cr = context.getContentResolver();
    return
Settings.Global.getInt(cr, DEVICE_PROVISIONED, 0) != 0;
}
  • İsteğe bağlı. DPC, durum bilgilerini DeviceAdminReceiver (profil sahibi destek kaydında iş profilinin içinde çalışır) iletmek için temel hazırlığı başlatırken EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE ek bileşenini kullanabilir. TestDPC bu ekstra veriyi temel hazırlık tamamlandıktan sonra Google Hesabı akışına farklı bir etkinlik grubu girmek için kullanır. Ayrıntılı bilgi için DeviceAdminReceiver başlıklı makaleyi inceleyin.
public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver
{

    @Override
    public void onProfileProvisioningComplete(Context context, Intent intent) {
        // Retrieve the admin extras bundle, which we can use to determine the original context for
        // Test DPC’s launch.
        PersistableBundle extras = intent.getParcelableExtra(
                EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
        ...
  • Bir iş profili oluşturmak için DPC'nin eklenen hesabı yeni iş profiline taşıması gerekir. Bunu yapmak için DPC'nin ACTION_PROVISION_MANAGED_PROFILE için başlatma amacında sağlanan hesabı iletmesi gerekir.
  • DPC, kullanıcıya kurulumun sonunda uygulamadan çıkması için net bir harekete geçirici mesaj (ör. Sonlandır düğmesi) sağlamalıdır. Böylece, kullanıcı akışta bir çıkmaza girdiğini düşünmez.
  • Kullanıcı deneyiminin sorunsuz olması ve iyi entegre edilmiş hissetmesi için DPC, kurulum sihirbazının temasını veya düzen kitaplığını kullanmalıdır.

NFC yöntemi

DPC, cihaz sahibi modunu ayarlamak için NFC temel hazırlık yöntemini kullanabilir. NFC temel hazırlık yönteminde veya NFC Etiketinde, cihaz sahibi çalışma modunu yapılandırmak için müşterinizin gerektirdiği ilk politikaları ve kablosuz ağ yapılandırmasını, ayarları ve temel hazırlık ayrıntılarını içeren bir NFC programcı uygulaması oluşturursunuz. Siz veya müşteriniz NFC programcı uygulamasını bir Android cihaza yüklediğinde bu cihaz programcı cihazı olur.

Bir cihazın temel hazırlığını yapmak için BT yöneticisi kutudan yeni bir cihazı çıkarır ve programcının cihazına dokunur. Düğme, yapılandırmaları cihaza aktararak internete bağlanmasını ve uygun politikaları ve ayarları indirmesini sağlar. Cihaz daha sonra DPC'niz tarafından yönetilir.

Bir cihazın temel hazırlığı yapıldıktan sonra Google Play, gösterilmesi gereken onaylı uygulama ve koleksiyonlar yerine kısa bir süre için yönetilmeyen tüketici içeriklerini gösterir. Bu gecikme, birkaç dakika ile bir saat arasında sürebilir.

NFC programcı uygulamasını ve programcı cihazını oluşturma

  1. GitHub Enterprise-samples sayfamızdan NFC programcı örnek uygulamasını indirin. Örneği eklemeler olmadan olduğu gibi kullanabilir veya varsayılan değerleriniz için değiştirebilirsiniz. Daha fazla bilgi için varsayılan parametreler örnek koduna bakın.
  2. Programcı uygulamasını seçilen cihaza yükleyin.
  3. NFC programcı uygulamasını başlatın ve com.example.android.apis için Varsayılanları Yükle'yi seçin. (Bu metin, ayarladığınız varsayılan parametrelere bağlı olarak değişiklik gösterebilir.)

Müşteri cihazının temel hazırlığını yapma

  1. Programcı cihazını yeni veya fabrika ayarlarına sıfırlanmış bir cihazla dokundurun.
  2. Cihazın, başladığında görüntülenen ilk Karşılama ekranında kaldığını doğrulayın. Metin, programcı uygulamasındaki Ready to send:{...} bölümünde belirtilir.
  3. DPC şunları yaparken bekleyin:
    1. Cihazı şifreler.
    2. Kod Bölmeli Çoklu Erişim (CDMA) cihazıysa: Telefon kullanıcı arayüzü gösterilirken (etkileşim gerekmez) telefonu etkinleştirir.
    3. Kablosuz bağlantıyı kurar.
    4. com .example.android.apis için.apk dosyasını indirir.
    5. com.example.android.apis. dosyasını yükler
    6. com.example.android.apis dosyasındaki Örnek Cihaz Yöneticisi'ni cihaz sahibi olarak ayarlar.
    7. Cihaz sahibi etkinleştirildiğinde işlemin başarılı olduğunu belirten bir "kısa mesaj" gösterir.
  4. Ana sayfaya döndükten sonra (kurulum sihirbazı otomatik olarak atlanır), com.example.android.apis'in cihaz sahibi olarak ayarlandığından emin olun:
    1. Ayarlar > Güvenlik > Cihaz yöneticileri bölümünde Örnek Cihaz Yöneticisi'nin kaldırılamayacağından emin olun.
    2. Ayarlar > Kullanıcılar > Kullanıcılar ve profiller > Siz (sahip) bölümünde, Sahip hesabının kullanılabilir tek hesap olduğundan emin olun (bir cihazın aynı anda yalnızca bir etkin cihaz sahibi olabilir).

NFC programcı uygulamasından kod örnekleri

NFC programcı uygulamasında özellikle yararlı bulabileceğiniz bölümlerde satır içi yorumlar bulunmaktadır. Örnek kodun tamamını NFC programcı uygulamasında görüntülemek için bir Java de derleyici programı kullanarak örnek .apk dosyasını açın.

initializeMülkUI() yöntemi

initializePropertyUI() yöntemi, NFC programcı uygulamasında kullanıcı arayüzü öğelerini (düzenlenebilir metin kutuları ve onay kutuları) başlatır. Bu öğelerdeki değişiklikler, mProps değişkeninin barındırdığı anahtar/değer çiftleri (KVP'ler) ile senkronize edilir. mProps değişkeni sonuç olarak NFC dokundurma özelliğiyle bir cihaza gönderilir.

private void initializePropertyUI(int paramInt1, int paramInt2, final String
paramString)
{
    Log.d("DeviceProvisioningProgrammerSample","initializeProperty for " + paramString);
    final EditText localEditText = (EditText)findViewById(paramInt1);
    final CheckBox localCheckBox =(CheckBox)findViewById(paramInt2);

/* Here we initialize text boxes so that when their text is edited the changes are synced to mProps. */

    if(localEditText != null)
      localEditText.addTextChangedListener(new TextWatcher()
      {
        public void afterTextChanged(Editable paramAnonymousEditable)
        {
        }
        public void beforeTextChanged(CharSequence paramAnonymousCharSequence, 
        int paramAnonymousInt1, int paramAnonymousInt2, int paramAnonymousInt3)
        {
      }
        public void onTextChanged(CharSequence paramAnonymousCharSequence, 
        int paramAnonymousInt1, int paramAnonymousInt2, in paramAnonymousInt3)
        {
          if ((localCheckBox != null) && (localCheckBox.isChecked()))
          {
              DeviceProvisioningProgrammerSample.this.mProps.put(paramString,
              localEditText.getText().toString());
              DeviceProvisioningProgrammerSample.this.refreshMessageView();
          }
        }
      });

/* Here we initialize check boxes, so that when they are unchecked, the edit 
boxes are disabled, and the corresponding KVPs are removed from mProps. When 
they are checked the KVPs are re added, and the text boxes are enabled. */

    if (localCheckBox != null) localCheckBox.setOnCheckedChangeListener
    (new CompoundButton.OnCheckedChangeListener()
      {
        public void onCheckedChanged(CompoundButton paramAnonymousCompoundButton, 
        boolean paramAnonymousBoolean)
        {
          Log.d("DeviceProvisioningProgrammerSample", "onCheckedChanged for 
          " + localEditText.getText().toString() + " isChecked = " + paramAnonymousBoolean);
         if (paramAnonymousBoolean)
          {
            localEditText.setEnabled(true);
            DeviceProvisioningProgrammerSample.this.mProps.put(paramString, 
            localEditText.getText().toString());
            DeviceProvisioningProgrammerSample.this.refreshMessageView(); return;
          }
          localEditText.setEnabled(false);
            DeviceProvisioningProgrammerSample.this.mProps.remove(paramString);
            DeviceProvisioningProgrammerSample.this.refreshMessageView();
      }
    });
}

Varsayılan parametreler

Bu kod örneği, NFC dokundurmasında cihaza aktarılacak varsayılan değerleri ayarlar. Bazı yapılandırılabilir parametreler örneğe dahil edilmez, ancak uygulamanıza bunları dahil etmeniz gerekebilir. (Örnekte olmayan parametreleri burada bulabilirsiniz.)

public void loadDefaults1(View paramView)
{
/* This EditText holds the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME */
((EditText)findViewById(2131034114)).setText("com.example.android.apis");
((CheckBox)findViewById(2131034113)).setChecked(true);

/* This EditText holds
the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION */
((EditText)findViewById(2131034116)).setText
("https://sites.google.com/site/apidemodownload/somepage/ApiDemos.apk");
((CheckBox)findViewById(2131034115)).setChecked(true);

/* This EditText holds
the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM (note: must be URL-safe)*/
((EditText)findViewById(2131034118)).setText("ZYk5xsY0xqic51CTqB9kLiMLqwk");
((CheckBox)findViewById(2131034117)).setChecked(true);

/* This EditText holds
the KVP for EXTRA_PROVISIONING_WIFI_SSID */
((EditText)findViewById(2131034120)).setText("\"GoogleGuest\"");
((CheckBox)findViewById(2131034119)).setChecked(true);

/* This EditText holds
the KVP for EXTRA_PROVISIONING_TIME_ZONE*/
((EditText)findViewById(2131034122)).setText("Europe/London");
((CheckBox)findViewById(2131034121)).setChecked(true);
((CheckBox)findViewById(2131034123)).setChecked(false);

/* This EditText holds
the KVP for EXTRA_PROVISIONING_LOCALE
((EditText)findViewById(2131034126)).setText("en_GB");
((CheckBox)findViewById(2131034125)).setChecked(true);
}

onCreate() Yöntemi

onCreate() yöntemi, NFC programcısı uygulamasını, işlevlerini ve özelliklerini başlatır. android.app.extra dizeleri, DevicePolicyManager dokümanlarında açıklanan dizelere karşılık gelir. Örneğin: DevicePolicyManager.EXTRA_ PROVISIONING_WIFI_SSID == "android.app.extra.PROVISIONING_WIFI_SSID".

protected void onCreate(Bundle paramBundle)
{
Log.d("DeviceProvisioningProgrammerSample", "onCreate");
super.onCreate(paramBundle);
    setContentView(2130903040);
    this.mTextView = ((TextView)findViewById(2131034112));
    this.mProps = new Properties();
initializePropertyUI(2131034114, 2131034113,
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME");
initializePropertyUI(2131034116, 2131034115,
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION");
initializePropertyUI(2131034118, 2131034117,
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM");
initializePropertyUI(2131034120, 2131034119,
"android.app.extra.PROVISIONING_WIFI_SSID");
initializePropertyUI(2131034122, 2131034121,
"android.app.extra.PROVISIONING_TIME_ZONE");
initializePropertyUI(2131034124, 2131034123,
"android.app.extra.PROVISIONING_LOCAL_TIME");
initializePropertyUI(2131034126, 2131034125,
"android.app.extra.PROVISIONING_LOCALE");
    refreshMessageView();

/*  Next we get the default NFC adapter for the Android device being used, and define 
CreateNdefMessageCallback() for that adapter, which is invoked when another NFC device
capable of NDEF push (Android Beam) is within range. CreateNdefMessageCallback is an interface
that has one abstract method that needs to be defined. That method, createNdefMessage,
creates the message to be pushed. */

NfcAdapter.getDefaultAdapter(this).setNdefPushMessageCallback(new
NfcAdapter.CreateNdefMessageCallback()
    {
      public NdefMessage
createNdefMessage(NfcEvent paramAnonymousNfcEvent)
      {

/* Here ndefMessage creates an output stream which contains the values from mProps. */

Log.d("DeviceProvisioningProgrammerSample", "Sending Nfc");
ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
        try
        {
DeviceProvisioningProgrammerSample.this.mProps.store(localByteArrayOutputStream,
DeviceProvisioningProgrammerSample.this.getString(2130968578));
DeviceProvisioningProgrammerSample.this.mTextView.post(new Runnable()
{
            public void run()
            {
DeviceProvisioningProgrammerSample.this.refreshMessageView();
            }
      });

/* Here NdefMessage is created containing an NdefRecord. The NdefRecord contains its record 
type, and a byte array derived from the mProps output stream. */

          return new NdefMessage(new NdefRecord[] {
NdefRecord.createMime("application/com.android.managedprovisioning",
localByteArrayOutputStream.toByteArray()) });
        }
        catch
(IOException localIOException)
        {
          while (true)
Log.e("DeviceProvisioningProgrammerSample", "io exception", localIOException);
       }
      }
    }
    , this, new Activity[0]);
}

Ek kaynaklar

Gelişmiş NFC, çeşitli etiket teknolojileriyle çalışma, NFC etiketlerine yazma ve ön planda gönderme gibi gelişmiş NFC konularını tanımlar.

Manuel DPC yükleme yöntemi

Kullanıcı, manuel DPC yükleme temel hazırlık yöntemini kullanarak profil sahibi modunu ayarlamak için DPC'nizi Google Play'den indirir ve yükler. Ardından DPC, yönetilen Google Hesabı için profil sahibini ayarlama işleminin geri kalanında kullanıcıya yol gösterir.

DPC, yönetilen Google Hesabı'nı iş profilini oluşturmadan önce veya oluşturduktan sonra ekleyebilir. Örneğin, DPC, önce yönetilen Google Hesabı'nı istemek yerine kullanıcının EMM kimlik bilgilerini temel alan bir iş profili oluşturabilir.

Profil sahibi modunu ayarla

Önce yönetilen Google Hesabı'nı ekleyin

  1. Kullanıcı DPC'nizi Google Play'den indirir ve yükler.
  2. DPC, AccountManager.addAccount() kullanarak iş profili oluşturmadan önce yönetilen Google Hesabı'nı ekler.
  3. DPC, kişisel profilde çalışmaya başlar ve aşağıdakileri kullanarak bir iş profili oluşturma işlemini başlatır: ACTION_PROVISION_MANAGED_PROFILE-İş profilinin temel hazırlığını yapar.
    EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLEİş profili için yerel ayar, kablosuz ağ, e-posta adresi gibi ek bilgiler.
    EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATEYeni iş profiline taşınacak kimliği doğrulanmış hesabın adı.
  4. İş profilindeki DPC, temel hazırlık işlemini tamamlar. İş profili oluşturulduktan sonra, DPC de iş profilinin içinde çalışır. İş profilindeki DPC, ilgili yönetilen Google Hesabı için politikalar aktararak, cihazın güvenliği ihlal edilmiş durumda olmadığından emin olarak ve politikaların uygulandığını doğrulayarak (örneğin, şifre isteme) temel hazırlık işlemini tamamlar.
  5. İş profili temel hazırlığı yapıldığında DPC, ACTION_PROFILE_PROVISIONING_COMPLETE yayınını alır.
  6. Kişisel profildeki DPC kendisini devre dışı bırakır veya kullanıcı tarafından kaldırılır.

Önce iş profilini oluşturun

  1. Kullanıcı DPC'nizi Google Play'den indirir ve yükler.
  2. DPC, kişisel profilde çalışmaya başlar ve aşağıdakileri kullanarak bir iş profili oluşturma işlemini başlatır: ACTION_PROVISION_MANAGED_PROFILE-İş profilinin temel hazırlığını yapar.
    EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLEİş profili için yerel ayar, kablosuz ağ, e-posta adresi gibi ek bilgiler.
  3. DPC, AccountManager.addAccount() kullanarak yönetilen Google Hesabı'nı ekler.
  4. DPC, ACTION_PROFILE_PROVISIONING_COMPLETE yayınını alır ve EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE değerini okur.
  5. İş profilindeki DPC, temel hazırlık işlemini tamamlar. İş profili oluşturulduktan sonra, DPC de iş profilinin içinde çalışır. İş profilindeki DPC, ilgili yönetilen Google Hesabı için politikalar aktararak, cihazın güvenliği ihlal edilmiş durumda olmadığından emin olarak ve politikaların uygulandığını doğrulayarak (örneğin, şifre isteme) temel hazırlık işlemini tamamlar.
  6. DPC, DevicePolicyManager.setProfileEnabled() kullanan iş profilini etkinleştirir.
  7. Kişisel profildeki DPC kendisini devre dışı bırakır veya kullanıcı tarafından kaldırılır.

Eski modu ayarla

Eski çalışma modunun temel hazırlığını, cihazın ilk kurulumu sırasında veya kullanıcı Ayarlar > Hesap ekle'ye giderek hesap eklediğinde sağlayabilirsiniz. Managed Google Play'i Google Hesabı olan kullanıcılara sunma şartları şunlardır:

  • Google Hesabı, yönetilen bir Google alanının parçasıdır.
  • Yönetilen Google alanı, Google Play EMM API'ye bağlı bir EMM ile kuruluşta Android için ayarlanır.

Yalnızca eski cihazlarda uygulama yönetimi yapmak istiyorsanız DPC'ye ihtiyacınız yoktur. Bu durumda kullanıcı, Ayarlar > Hesap ekle'ye Google Hesabını ekler. Uygulama yönetimi; önerilen uygulamaları seçme, özel uygulamaları kullanıma sunma ve lisans satın alma ile dağıtma işlemlerini içerir.

DPC'nizin Google Hesabını eklemesini istiyorsanız:

  1. Kullanıcı DPC'nizi Google Play'den indirir ve başlatır.
  2. DPC, AccountManager.addAccount() kullanarak yönetilen Google Hesabı'nı ekler. AccountManager.KEY_ACCOUNT_NAME kullanarak belirli bir Google Hesabı'nı eklemeye ilişkin örnek uygulama için TestDPC sayfasına bakın.
  3. (İsteğe bağlı) DPC, kendisini cihaz yöneticisi olarak ayarlar. Cihaz yöneticisi olarak DPC, uygulama yönetiminin ötesinde cihaz yönetimi özelliklerine sahiptir.