Şekil 1. Özel alanın kilidi açılarak veya kilitlenerek cihazdaki hassas uygulamalar gösterilebilir ya da gizlenebilir.
Özel alan, kullanıcıların cihazlarında hassas uygulamaları meraklı gözlerden korumak için güvenli ve izole bir ortam oluşturmalarını sağlar. Özel alandaki uygulamalar, başlatıcıda ayrı bir kapsayıcıda gösterilir ve özel alan kilitlendiğinde son kullanılanlar görünümü, bildirimler, ayarlar ve diğer uygulamalardan gizlenir.
Korumalı alan ayrı bir Android profilidir. Son kullanıcı özel alana bir uygulama eklediğinde veya yüklediğinde uygulama bu yeni Android profiline yüklenir. Sistem bunu yeni bir uygulama yükleme olarak değerlendirir ve uygulama verileri özel alana kopyalanmaz. Alan kilitliyken özel profil kullanıcısı durdurulur ve alan kilidi açıldığında kullanıcı başlatılır.
Özel alandaki uygulamalar, ana alandaki uygulamaların ayrı kopyaları olarak yüklenir. Kullanıcı içerikleri (kullanıcı tarafından oluşturulan veya indirilen) ve kullanıcı hesapları, özel alan ile ana alan arasında ayrılır. Uygulamaların yalnızca özel alanın kilidi açıkken alanlar arasındaki içeriklere erişmesine izin vermek için sistem paylaşım sayfasını ve fotoğraf seçiciyi kullanabilirsiniz.
Özel alan, Android çok kullanıcılı modelini temel alır ve aşağıdaki profil ile kullanıcı türünü ekler:
- Profil:
- Özel
- Kullanıcı türü:
android.os.usertype.profile.PRIVATE
Ayarlar ve başlatıcı uygulamaları
Kilit, kilit açma ve gizli durumları desteklemek için ayarları ve başlatıcı uygulamalarını güncellemeniz gerekir. Özel alan kilitliyken başlatıcı, kilidini açmak için bir giriş noktası sağlar (gizli durumda hariç). Özel alan kilitliyken ayarlar uygulaması, özel alanın varlığını göstermemelidir.
Gizli profil kullanıcısını tanımlamak için LauncherApps#getLauncherUserInfo
değerini kullanın. Başlatıcı uygulamalarının, kilitli durumu ve kilidi açık durumu kaydettirmesi ve bu yayınlar alındığında kullanıcı arayüzünde özel alanın durumunu değiştirmesi gerekir.
Bu yayınların her ikisinde de, gizli profil kullanıcısına atıfta bulunmak için kullanabileceğiniz EXTRA_USER
adlı ek bir sabit vardır.
Başlatıcı uygulamaları, gizli profil durumunu kontrol etmek için UserManager.isQuietModeEnabled
yöntemini kullanabilir.
Gizli profil
Özel profil, özel alanla birlikte kullanılacak yeni profil türünü android.os.usertype.profile.PRIVATE
ekler. Özel profil, iş profili ve kopya profille aynı cihazda bulunabilir. Ana Android kullanıcısından ayrı, korumalı bir alandır. Özel alanın kilidi açıldığında uygulamalar ayarlar, Sharesheet, fotoğraf seçici ve Dokümanlar kullanıcı arayüzünde görünür hale gelir. Özel alan kilitliyken özel alandaki uygulamalar bu yüzeylerin hiçbirinde gösterilmez.
Özel alan tek bir cihazda yalnızca bir kez oluşturulabilir ve yalnızca ana kullanıcı için kullanılabilir (ikincil kullanıcılar veya diğer profiller için kullanılamaz).
İzinler
Özel profillere erişmek için başlatıcı uygulamalarının android.permission.ACCESS_HIDDEN_PROFILES
iznine ve android.app.role.RoleManager.ROLE_HOME
rolüne sahip olması gerekir.
AOSP başlatıcısını kullanmayan uygulamaların, özel profil desteği eklemek için başlatıcılarını değiştirmesi gerekir. Özel alan içeren bir başlatıcı uygulaması geliştirme hakkında daha fazla bilgi edinmek için geliştirici sitemizdeki başlatıcı uygulamaları başlıklı makaleyi inceleyin.
Amaçlar
Telefon araması intent'leri ana kullanıcıya yönlendirilir ve bir bildirim gösterilir. Diğer tüm intent'ler gizli profille sınırlıdır ve yönlendirilmez.