Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Android için Microsoft Intune Uygulama SDK'sı, yerel Java/Kotlin Android uygulamanıza Intune uygulama koruma ilkelerini (APP veya MAM ilkeleri olarak da bilinir) dahil etmenizi sağlar. Intune yönetilen uygulama, Intune Uygulama SDK'sı ile tümleştirilmiş uygulamadır. Intune yöneticileri, Intune uygulamayı etkin bir şekilde yönettiğinde uygulama koruma ilkelerini Intune yönetilen uygulamanıza kolayca dağıtabilir.
Önemli
Intune, Intune Uygulama SDK'sına yönelik güncelleştirmeleri düzenli olarak yayımlar. Güncelleştirmeleri yazılım geliştirme sürüm döngünüze dahil edebilmeniz ve uygulamalarınızın en son Uygulama Koruma İlkesi ayarlarını desteklediğinden emin olmak için güncelleştirmeler için Intune Uygulama SDK depolarına abone olmanız önerilir.
İşletim sistemi güncelleştirmeleri hataya neden olabileceği için uygulamanızın sorunsuz çalışmaya devam ettiğinden emin olmak için her büyük işletim sistemi sürümünden önce zorunlu Intune Uygulama SDK'sı güncelleştirmelerini almayı planlayın. Büyük bir işletim sistemi sürümünden önceki en son sürüme güncelleştirmezseniz, hataya neden olan bir değişiklikle karşılaşma ve/veya uygulama koruma ilkelerini uygulamanıza uygulayamama riskiyle karşılaşabilirsiniz.
İşlem akışı
Aşağıdaki diyagramda Android için Intune Uygulama SDK'sı işlem akışı sağlanır:
Aşama Goals
Kılavuz, Intune Uygulama SDK'sının mimarisi, yaygın olmayan tümleştirme adımları ve diğer yararlı içerikler hakkında daha fazla ayrıntı içerir.
Daha Ayrıntılı Sdk
Sınıf ve Yöntem Değiştirmeleri
derleme araçları aracılığıyla, Intune Uygulama SDK'sı Android geliştiricilerinin tümleştirme yükünü en aza indirmeye çalışır. Derleme araçlarından önce geliştiricilerin tüm değiştirme işlemlerini el ile gerçekleştirmesi gerekiyordu.
Not
Uygulamaların artık SDK derleme araçlarıyla tümleştirilmesigerekir ve bu araçlar tüm bu değişiklikleri otomatik olarak gerçekleştirir.
Android temel sınıfları, Intune yönetimini etkinleştirmek için ilgili MAM eşdeğerleriyle değiştirilir.
SDK sınıfları, Android temel sınıfı ile uygulamanın bu sınıfın kendi türetilmiş sürümü arasında çalışır.
Örneğin, bir uygulama etkinliği şuna benzer bir devralma hiyerarşisiyle sonuçlanabilir: AppSpecificActivity
genişletir MAMActivity
genişletir Activity
.
MAM katmanı, uygulamanıza dünyanın yönetilen bir görünümünü sorunsuz bir şekilde sağlamak için sistem işlemlerine çağrıları filtreler.
Temel sınıflara ek olarak, uygulamanızın türetmeden kullanabileceği bazı sınıflar da (örneğin MediaPlayer
) gerekli MAM eşdeğerlerine sahiptir ve bazı yöntem çağrılarının da değiştirilmesi gerekir.
Aşağıdaki tabloda MAM değiştirmelerin çoğu listelenmiştir.
Android temel sınıfı | Intune Uygulama SDK'sı değiştirme |
---|---|
android.app.Activity | MAMActivity |
android.app.ActivityGroup | MAMActivityGroup |
android.app.AliasActivity | MAMAliasActivity |
android.app.Application | MAMApplication |
android.app.Dialog | MAMDialog |
android.app.AlertDialog.Builder | MAMAlertDialogBuilder |
android.app.DialogFragment | MAMDialogFragment |
android.app.ExpandableListActivity | MAMExpandableListActivity |
android.app.Fragment | MAMFragment |
android.app.IntentService | MAMIntentService |
android.app.LauncherActivity | MAMLauncherActivity |
android.app.ListActivity | MAMListActivity |
android.app.ListFragment | MAMListFragment |
android.app.NativeActivity | MAMNativeActivity |
android.app.PendingIntent | MAMPendingIntent |
android.app.Service | MAMService |
android.app.TabActivity | MAMTabActivity |
android.app.TaskStackBuilder | MAMTaskStackBuilder |
android.app.backup.BackupAgent | MAMBackupAgent |
android.app.backup.BackupAgentHelper | MAMBackupAgentHelper |
android.app.backup.FileBackupHelper | MAMFileBackupHelper |
android.app.backup.SharePreferencesBackupHelper | MAMSharedPreferencesBackupHelper |
android.app.job.JobService | MAMJobService |
android.content.BroadcastReceiver | MAMBroadcastReceiver |
android.content.ContentProvider | MAMContentProvider |
android.os.Binder | MAMBinder (Yalnızca Bağlayıcı bir Android Arabirim Tanım Dili (AIDL) arabiriminden oluşturulmadıysa gereklidir) |
android.media.MediaPlayer | MAMMediaPlayer |
android.media.MediaMetadataRetriever | MAMMediaMetadataRetriever |
android.media.MediaRecorder | MAMMediaRecorder |
android.provider.DocumentsProvider | MAMDocumentsProvider |
android.preference.PreferenceActivity | MAMPreferenceActivity |
android.widget.PopupWindow | MAMPopupMenu |
android.widget.PopupWindow | MAMPopupWindow |
android.widget.ListPopupWindow | MAMListPopupWindow |
android.widget.TextView | MAMTextView |
android.widget.AutoCompleteTextView | MAMAutoCompleteTextView |
android.widget.CheckedTextView | MAMCheckedTextView |
android.widget.EditText | MAMEditText |
android.inputmethodservice.ExtractEditText | MAMExtractEditText |
android.widget.MultiAutoCompleteTextView | MAMMultiAutoCompleteTextView |
android.view.LayoutInflater | MAMLayoutInflater |
android.view.ViewGroup | MAMViewGroup |
android.view.SurfaceView | MAMSurfaceView |
android.opengl.GLSurfaceView | MAMGLSurfaceView |
android.widget.VideoView | MAMVideoView |
Yeniden Adlandırılmış Yöntemler
Çoğu durumda, Android sınıfında kullanılabilen bir yöntem MAM değiştirme sınıfında son olarak işaretlenmiştir.
Bu durumda, MAM değiştirme sınıfı bunun yerine geçersiz kılmanız gereken benzer adlandırılmış bir yöntem (genellikle ile MAM
soneki) sağlar.
Örneğin, MAMActivity'den türetilirken geçersiz kılmak onCreate()
ve çağırmak super.onCreate()
yerine geçersiz Activity
kılmalı onMAMCreate()
ve çağrısı super.onMAMCreate()
yapmalıdır.
Java derleyicisi, MAM eşdeğeri yerine özgün yöntemin yanlışlıkla geçersiz kılınmasını önlemek için son kısıtlamaları zorunlu kılmalıdır.
Sarmalanmış Sistem Hizmetleri
Bazı sistem hizmet sınıfları için, hizmet örneğinde istenen yöntemi doğrudan çağırmak yerine MAM sarmalayıcı sınıfında statik bir yöntemi çağırmak gerekir.
Örneğin, çağrısının getSystemService(ClipboardManager.class).getPrimaryClip()
çağrısı MAMClipboardManager.getPrimaryClip(getSystemService(ClipboardManager.class)
olması gerekir.
Yine gerekli derleme eklentisi bu değişiklikleri otomatik olarak yapar.
Android Sınıfı | Intune Uygulama SDK'sı değiştirme |
---|---|
android.content.ClipboardManager | MAMClipboard |
android.content.ContentProviderClient | MAMContentProviderClientManagement |
android.content.ContentResolver | MAMContentResolverManagement |
android.content.pm.PackageManager | MAMPackageManagement |
android.app.DownloadManager | MAMDownloadManagement |
android.print.PrintManager | MAMPrintManagement |
android.view.View | MAMViewManagement |
android.view.DragEvent | MAMDragEventManagement |
android.view.LayoutInflater | MAMLayoutInflaterManagement |
android.app.NotificationManager | MAMNotificationManagement |
android.app.blob.BlobStoreManager | MAMBlobStoreManager |
android.app.blob.BlobStoreManager.Session | MAMBlobStoreManager.Session |
Bazı sınıflarda yöntemlerin çoğu sarmalanmıştır, örneğin, , , ve diğer sınıflarda sarmalanmış yalnızca bir veya iki yöntem vardır; örneğin, DownloadManager
, PrintManager
, PrintHelper
, View
, DragEvent
NotificationManager
ve NotificationManagerCompat
.PackageManager
ContentResolver
ContentProviderClient
ClipboardManager
MDM ve MAM Kaydı
4. Aşama'nın Kayıt ve Kayıt bölümünde açıklandığı gibi Intune Uygulama SDK'sı, hesabınızın ilkeyle korunması için uygulamanızın kaydettiği hesapları "kaydeder". Bu kayıt başarılı olduktan sonra hesap yönetilir hale gelir ve mam ilkeleri artık bu hesaba uygulanmalıdır.
"Kayıt" terimi, Cihaz Yönetimi (MDM) etkinleştirmek için son kullanıcı tarafından başlatılan işleme de başvurabilir. MDM kaydı, Uygulama Koruma İlkesi kaydından tamamen ayrıdır.
SDK ile tümleşik bir uygulamada, bu hesap Cihaz Yönetimi kaydedilmeden Uygulama Koruma İlkesi için kaydedilmiş bir hesap olabilir. Benzer şekilde, bir kullanıcı, Uygulama Koruma İlkesi'ne kayıtlı hesaplarla SDK ile tümleşik uygulamalar olmadan Cihaz Yönetimi için bir cihaz kaydedebilir.
Genellikle geliştiriciler ve yöneticiler kayıt konusuna başvurduğunda MDM kaydına başvururlar çünkü Uygulama Koruma İlkesi kaydı hem geliştiriciler hem de son kullanıcılar tarafından büyük ölçüde görünmez. MDM kaydı hakkında daha fazla bilgi için bkz. Android cihazlarını kaydetme.
Tümleştirme İpuçları
Şirket Portalı günlüklerini anlama
Şirket Portalı günlükleri, Microsoft mühendislerinin sorun araştırmalarında kullandığı bilgileri içerir. Bazı günlükler SDK'yi tümleştiren geliştiriciler için de yararlı olabilir.
Özellikle, dosya DiagnosticsInfo-scrubbed.log
MAM tarafından yönetilen uygulamalarla ilgili bilgileri ve bölümdeki MAM ilkesi ayrıntılarını PolicyDB Information
içerir.
Yönetilen her uygulamanın bölümünde bir girdisi PolicyDB Information
vardır.
MAM ilkesinin uygulamanızı doğru şekilde hedeflediğini onaylamak için uygulamanızın paket adını burada aramanız gerekir.
Uygulamanızın paket adını burada görmüyorsanız, oturum açan hesabın MAM ilkesi uygulanmadığını gösterir.
Her MAM ilkesi ayarıyla ilgili açıklama için Microsoft Intune'deki Android uygulama koruma ilkesi ayarlarına bakın. Bu ayarların Şirket Portalı günlüklerinde nasıl gösterileceğinin açıklaması için bkz. İstemci uygulama koruma günlüklerini gözden geçirme. MAM ilkesi beklendiği gibi uygulanmadığında, Şirket Portalı günlüklerini veya tanılama kullanıcı arabirimini denetlemenizi, uygulamanızın MAM ilkesi tarafından yönetildiğini doğrulamanızı ve ilke ayarlarının beklenen değerlere sahip olduğunu onaylamanızı öneririz.
Şirket Portalı günlüklerini aşağıdaki yollardan biriyle toplayabilirsiniz:
- Şirket Portalı aracılığıyla
- Şirket Portalı uygulamasını açma
- Sağ yukarı köşedeki üç nokta menüsünü seçin
- Ayarlar'ı seçin
- Tanılama Günlükleri'nin altında Günlükleri Kaydet'i seçin
- Şirket Portalı günlüklerini kaydetmek için çıkış dizinini seçmek için istemi izleyin.
- Günlükleri Android cihazınızdan yerel makinenize çekmek için komutunu kullanın
adb shell pull
.
- [Yönetilen uygulama günlüklerine erişmek için Android için Microsoft Edge'i kullanın]. Bu, Şirket Portalı günlükleri toplamak ve MAM tanılamalarını görüntülemek için kullanıcı arabirimini görüntüler.
- Şirket Portalı günlüklerini toplamak için aynı kullanıcı arabirimini görüntülemek için çağrısı
MAMPolicyManager.showDiagnostics(context)
.
Değişen ilkeyle hızlı test etme
Uygulamanızın Intune Uygulama SDK'sı tümleştirmesini geliştirirken ve test ederken, test kullanıcınızın Uygulama Koruma İlkesi ayarlarını sık sık değiştirebilirsiniz.
Varsayılan olarak, tümleşik uygulamalar etkin olduğunda her 30 dakikada bir güncelleştirilmiş ilke için Intune hizmetiyle iletişim kurar. Bu beklemeyi önleyebilir ve Şirket Portalı üzerinden bir check-in işlemi yapmaya zorlayabilirsiniz:
- Şirket Portalı başlatın. Oturum açmanız gerekmez.
- Seçin... menü simgesine tıklayın.
- Ayarlar'ı seçin.
- "Yönetim İlkesi" adlı ayara gidin.
- Eşitle düğmesine basın.
Bu işlem hemen bir iade zamanlar ve uygulamanıza ve hesabınıza hedeflenen güncel ilkeyi alır.
AndroidX Geçişi sorunlarını giderme
AndroidX'i kullanmadan önce Intune Uygulama SDK'sını tümleştirdiyseniz, AndroidX'e geçiş yaparken aşağıdaki gibi bir hatayla karşılaşabilirsiniz:
incompatible types: android.support.v7.app.ActionBar cannot be converted to androidx.appcompat.app.ActionBar
Uygulamanız SDK'nın eski destek sınıflarına başvurduğundan bu hatalar oluşabilir. MAM destek sınıfları, AndroidX'te taşınan Android destek sınıflarını sarmalar. Bu tür hatalarla mücadele etmek için tüm MAM destek sınıfı başvurularını AndroidX eşdeğerleriyle değiştirin. Bu, önce Gradle derleme dosyalarınızdan MAM destek kitaplığı bağımlılıkları kaldırılarak elde edilebilir. Söz konusu satırlar aşağıdakine benzer olacaktır:
implementation "com.microsoft.intune.mam:android-sdk-support-v4:$intune_mam_version"
implementation "com.microsoft.intune.mam:android-sdk-support-v7:$intune_mam_version"
Ardından ve paketlerindeki com.microsoft.intune.mam.client.support.v7
com.microsoft.intune.mam.client.support.v4
MAM sınıflarına yapılan tüm başvuruları AndroidX eşdeğerleriyle değiştirerek elde edilen derleme zamanı hatalarını düzeltin.
Örneğin, için başvurular MAMAppCompatActivity
AndroidX'in AppCompatActivity
olarak değiştirilmelidir.
Yukarıda açıklandığı gibi MAM derleme eklentisi/aracı, Derleme zamanında uygun MAM eşdeğerleriyle AndroidX kitaplıklarındaki sınıfları otomatik olarak yeniden yazar.
Sınırlamalar ve Özel Durumlar
Varsayılan kayıt
Uygulamanız, varsayılan kayıt adı verilen basitleştirilmiş bir işlem aracılığıyla alternatif olarak Uygulama Koruma İlkeleri'ne kaydolabilir. Bu özellik öncelikli olarak MSAL ile tümleşik olmayan özel iş kolu uygulamalarını desteklemektir.
Uyarı
Varsayılan kayıt önemli dezavantajlarla birlikte gelir ve önerilmez. Varsayılan kayıttan yararlanan uygulamalar Koşullu Erişimi desteklemez, Microsoft hizmetleriyle SSO'dan yararlanmaz ve Intune olmayan hesaplar tarafından kullanılamaz. Uygulamanız genel bir uygulama mağazasına taşınırsa varsayılan kayıt desteklenmez.
Varsayılan kayıt, kullanıcıların uygulamanıza erişmesine izin vermeden önce son kullanıcıyı Şirket Portalı yüklemeye ve mam kayıt akışını tamamlamaya zorlar.
Not
Varsayılan kayıt, bağımsız buluta duyarlıdır.
Aşağıdaki adımlarla varsayılan kaydı etkinleştirin:
Uygulamanız MSAL'yi tümleştirirse veya SSO'yı etkinleştirmeniz gerekiyorsa MSAL'yi yapılandırın. Aksi takdirde bu adımı atlayabilirsiniz.
Bildirimde etiketin altına
<application>
aşağıdaki değeri ekleyerek varsayılan kaydı etkinleştirin:<meta-data android:name="com.microsoft.intune.mam.DefaultMAMServiceEnrollment" android:value="true" />
Bildirimde etiketinin altına
<application>
aşağıdaki değeri ekleyerek MAM ilkesini etkinleştirin:<meta-data android:name="com.microsoft.intune.mam.MAMPolicyRequired" android:value="true" />
Yalıtılmış İşlemler
Intune Uygulama SDK'sı yalıtılmış işlemlere koruma uygulayamaz.
Yalıtılmış işlemler (android:isolatedProcess
) desteği için aşağıdaki meta veri etiketinin eklenmesi gerekir.
Uyarı
Uygulamanız bu meta verileri ekleyerek yalıtılmış işlemin kuruluş verilerini açığa çıkaramayacağını bildiriyor. Bunun garantisini uygulamanız sağlar.
<meta-data android:name="com.microsoft.intune.mam.AllowIsolatedProcesses" android:value="true" />
Özel Ekran Yakalama Kısıtlamaları
Uygulamanız Android'in Window
düzey FLAG_SECURE
kısıtlamasını atlayan özel bir ekran yakalama özelliği içeriyorsa, özelliğe tam erişime izin vermeden önce ekran yakalama ilkesini denetlemeniz gerekir.
Örneğin, uygulamanız geçerli görünümü PNG dosyasına işlemek için özel bir işleme altyapısı kullanıyorsa, önce öğesini denetlemeniz AppPolicy.getIsScreenCaptureAllowed()
gerekir.
Uygulamanız herhangi bir özel veya üçüncü taraf ekran yakalama özelliği içermiyorsa, ekran yakalamaları kısıtlamak için herhangi bir işlem yapmanız gerekmez.
Ekran yakalama ilkesi, tüm MAM tümleşik uygulamaları için düzeyinde otomatik olarak uygulanır Window
.
İşletim sistemi veya başka bir uygulama tarafından uygulamanızda yakalama Window
girişimleri gerektiği gibi engellenir.
Örneğin, bir kullanıcı Android'in yerleşik ekran görüntüsü veya ekran kaydı özellikleri aracılığıyla uygulamanızın ekranını yakalamaya çalışırsa yakalama, uygulamanızdan katılım olmadan otomatik olarak kısıtlanır.
İlke uygulama sınırlamaları
İçerik Çözümleyicilerini Kullanma: "Aktarma veya alma" Intune ilkesi, başka bir uygulamadaki içerik sağlayıcısına erişmek için içerik çözümleyici kullanımını engelleyebilir veya kısmen engelleyebilir. Bu, yöntemlerin null döndürmesine veya hata değeri oluşturmasına neden olur
ContentResolver
(örneğin,openOutputStream
engellenirse oluştururFileNotFoundException
). Uygulama, bir içerik çözümleyicisi aracılığıyla veri yazma hatasının ilkeden kaynaklanıp kaynaklanmadığını (veya ilkeden kaynaklanıp kaynaklanmayacağını) şu çağrıyı yaparak belirleyebilir:MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowed(contentURI);
veya ilişkili etkinlik yoksa:
MAMPolicyManager.getCurrentThreadPolicy().getIsSaveToLocationAllowed(contentURI);
Bu ikinci durumda, çok kimlikli uygulamaların iş parçacığı kimliğini uygun şekilde ayarlamaya (veya bir çağrıya
getPolicyForIdentity
açık bir kimlik geçirmeye) dikkat etmesi gerekir.
Dışarı aktarılan hizmetler
Intune Uygulama SDK'sında bulunan AndroidManifest.xml dosyası, Şirket Portalı yönetilen bir uygulamaya bildirim göndermesine izin vermek için dışarı aktarılan bir hizmet olması gereken MAMNotificationReceiverService dosyasını içerir. Hizmet, yalnızca Şirket Portalı bildirim göndermesine izin verildiğinden emin olmak için çağıranı denetler.
Yansıma sınırlamaları
MAM temel sınıflarından bazıları (örneğin, , MAMActivity
MAMDocumentsProvider
) yalnızca belirli API düzeylerinin üzerinde bulunan parametre veya dönüş türlerini kullanan yöntemler (özgün Android temel sınıflarına göre) içerir.
Bu nedenle, uygulama bileşenlerinin tüm yöntemlerini listelemek için yansıma kullanmak her zaman mümkün olmayabilir.
Bu kısıtlama MAM ile sınırlı değildir; uygulamanın kendisi Android temel sınıflarından bu yöntemleri uygularsa uygulanacak kısıtlamayla aynıdır.
Robolectric
Robolectric altında Intune Uygulama SDK'sı davranışını test etme desteklenmez. Robolectric altında bulunan ve bunları gerçek cihazlarda veya öykünücülerde doğru şekilde taklit etmeyen davranışlar nedeniyle SDK'nın Robolectric altında çalıştırılmasıyla ilgili bilinen sorunlar vardır.
Uygulamanızı Robolectric altında test etmeniz gerekiyorsa, önerilen geçici çözüm uygulama sınıfı mantığınızı bir yardımcıya taşımak ve MAMApplication'dan devralmayan bir uygulama sınıfıyla birim testi apk'nizi üretmektir.