Birden fazla kullanıcıyı destekleme

Android, kullanıcı hesaplarını ve uygulama verilerini ayırarak tek bir Android cihazda birden fazla kullanıcıyı destekler. Örneğin, ebeveynler çocuklarının aile tabletini kullanmasına izin verebilir, bir aile bir otomobili paylaşabilir veya kritik müdahale ekibi, nöbet görevi için bir mobil cihazı paylaşabilir.

Terminoloji

Android, Android kullanıcılarını ve hesaplarını tanımlarken aşağıdaki terimleri kullanır.

Genel

Android cihaz yönetimi aşağıdaki genel terimleri kullanır:

  • Kullanıcı: Her kullanıcı farklı bir fiziksel kişi tarafından kullanılacak şekilde tasarlanmıştır. Her kullanıcının farklı uygulama verileri ve bazı benzersiz ayarları vardır. Ayrıca, kullanıcılar arasında açıkça geçiş yapmak için bir kullanıcı arayüzü bulunur. Bir kullanıcı, başka bir kullanıcı etkinken arka planda çalışabilir. Sistem, uygun olduğunda kaynakları korumak için kullanıcıları kapatır. İkincil kullanıcılar doğrudan kullanıcı arayüzü üzerinden veya bir Cihaz Yönetimi uygulamasından oluşturulabilir.
  • Hesap: Hesaplar bir kullanıcının içinde bulunur ancak kullanıcı tarafından tanımlanmaz. Kullanıcılar da herhangi bir hesap tarafından tanımlanmaz veya bir hesaba bağlanmaz. Kullanıcılar ve profiller kendi benzersiz hesaplarını içerir ancak işlevsel olmaları için hesaplarının olması gerekmez. Hesap listesi kullanıcıya göre değişir. Ayrıntılı bilgi için Hesap sınıfı tanımını inceleyin.
  • Profil: Profillerde uygulama verileri ayrılır ancak sistem genelindeki bazı ayarlar (ör. kablosuz bağlantı ve Bluetooth) paylaşılır. Profil, kullanıcının varlığının alt kümesidir ve kullanıcıya bağlıdır. Bir kullanıcının birden fazla profili olabilir. Profiller, bir Cihaz Yönetimi uygulaması aracılığıyla oluşturulur. Profiller, her zaman profili oluşturan kullanıcı tarafından tanımlanan ve değiştirilemeyen bir üst kullanıcıyla ilişkilendirilir. Profiller, oluşturan kullanıcının yaşam süresi boyunca var olur.
  • Uygulama: Uygulamanın verileri, ilişkili her kullanıcıda bulunur. Uygulama verileri, aynı kullanıcıdaki diğer uygulamalardan korumalı alana alınır. Aynı kullanıcının uygulamaları, IPC aracılığıyla birbiriyle etkileşime girebilir. Ayrıntılı bilgi için Kurumsal Android başlıklı makaleyi inceleyin.

Kullanıcı kategorileri

Android cihaz yönetimi aşağıdaki kullanıcı kategorilerini kullanır.

  • Sistem kullanıcısı: Cihaza eklenen ilk kullanıcı. Sistem kullanıcısı, fabrika ayarlarına sıfırlama dışında kaldırılamaz ve diğer kullanıcılar ön planda olsa bile her zaman çalışır. Bu kullanıcının ayrıca özel ayrıcalıkları ve yalnızca kendisinin belirleyebileceği ayarları vardır.
  • Gözetimsiz sistem kullanıcısı: Cihaz, gözetimsiz sistem kullanıcısı modunda (ro.fw.mu.headless_system_user=true ayarlanarak) çalışacak şekilde yapılandırılmışsa cihaza eklenen ilk kullanıcıdır. Gözetimli sistem kullanıcısı her zaman arka planda çalışır. Bu nedenle, bu tür cihazlarda kullanıcı etkileşimini etkinleştirmek için ek ön plan kullanıcıları gerekir.
  • İkincil kullanıcı: Cihaza sistem kullanıcısı dışında eklenen tüm kullanıcılar. İkincil kullanıcılar kaldırılabilir (kendileri veya bir yönetici kullanıcı tarafından) ve cihazdaki diğer kullanıcıları etkilemez. Bu kullanıcılar arka planda çalışabilir ve ağ bağlantısına sahip olmaya devam edebilir.
  • Davetli kullanıcı: Geçici ikincil kullanıcı. Misafir kullanıcılar, misafir kullanıcının yararı sona erdiğinde hızlıca silmeyi seçebilir. Aynı anda yalnızca bir misafir kullanıcı olabilir.
  • Yönetici kullanıcı: Diğer kullanıcıları oluşturma ve kaldırmanın yanı sıra bazı genel çok kullanıcılı ayarları kontrol etme iznine sahip kullanıcı. Varsayılan olarak yalnızca sistem kullanıcısı yöneticidir.

Profil kategorileri

Android aşağıdaki profil kategorilerini kullanır:

  • Yönetilen profil: İş verilerini ve uygulamalarını barındırmak için bir uygulama tarafından oluşturulur. Yalnızca profil sahibi (kurumsal profili oluşturan uygulama) tarafından yönetilir. Başlatıcı, bildirimler ve son görevler, üst kullanıcı ve kurumsal profil tarafından paylaşılır.
  • Kısıtlı profil: Ebeveyn kullanıcıya dayalı hesapları kullanır. Ebeveyn kullanıcı, kısıtlı profilde hangi uygulamaların kullanılabileceğini kontrol edebilir. Yalnızca tabletlerde ve televizyon cihazlarında kullanılabilir.
  • Klon profil: Android, cihazda tek bir uygulamanın iki örneğinin çalıştırılmasını sağlamak için ayrı bir klon profil kullanıcı türü oluşturulmasını destekler. AOSP, bu özellik için uçtan uca destek sağlamaz. OEM'lerin, Android kullanıcılarına özelliğin tamamını sunmak için özelleştirmeler eklemesi gerekir.
  • Özel profil: Cihazın geri kalanından ayrı, ana kullanıcıdan ayrı olarak kilitlenebilen, korumalı bir alandır. Gizli profil yalnızca ana kullanıcı için oluşturulabilir. Özel profilin 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 ancak kilitlendiğinde gizlenir. Özel profil, iş profili ve kopya profille birlikte aynı cihazda bulunabilir.

Kullanıcı türleri

Android 11, yukarıdaki kullanıcı ve profil sınıflandırmasını, Android çok kullanıcılı özelliğinin izin verdiği tüm farklı kullanıcı ve profil türlerini temsil eden iyi tanımlanmış kullanıcı türlerine dönüştürmüştür.

Önceden tanımlanmış AOSP kullanıcı türleri frameworks/base/core/java/android/os/UserManager.java bölümünde tanımlanmıştır ve şu anda şunları içerir:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS
  • android.os.usertype.profile.CLONE
  • android.os.usertype.profile.PRIVATE

OEM'ler, frameworks/base/core/res/res/xml/config_user_types.xml dosyasını yer paylaşımı yaparak bu kullanıcı türlerini yapılandırabilir. Bu sayede, varsayılan kısıtlamalar, simgeler, rozetler ve izin verilen maksimum kullanıcı sayısı da dahil olmak üzere her kullanıcı türü için varsayılan yapılandırmayı değiştirmek kolaylaşır.

OEM'ler, yapılandırılabilir AOSP kullanıcı türlerine ek olarak frameworks/base/core/res/res/xml/config_user_types.xml dosyasını kullanarak yeni profil türleri tanımlayabilir. Bu sayede OEM'ler, isterlerse kendi yönetilmeyen profil türlerini tanıtabilir. Ancak, değişiklikleri desteklemek için gereken platform değişikliklerini yapmak OEM'nin sorumluluğundadır. Bu değişiklikler arasında, yönetilen profilleri kontrol eden tüm kodların, uygun olduğunda yeni profil türünü işleyecek şekilde değiştirilmesi de yer alır.

Çok kullanıcı özelliğini etkinleştirme

Çoklu kullanıcı özelliği varsayılan olarak devre dışıdır. Bu özelliği etkinleştirmek için cihaz üreticilerinin, frameworks/base/core/res/res/values/config.xml'teki aşağıdaki değerlerin yerini alacak bir kaynak yer paylaşımı tanımlaması gerekir:

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

Bu yer paylaşımını uygulamak ve cihazda misafir ve ikincil kullanıcıları etkinleştirmek için Android derleme sisteminin DEVICE_PACKAGE_OVERLAYS özelliğini kullanarak aşağıdaki değerleri değiştirin:

  • 1 değerinden büyük bir config_multiuserMaximumUsers
  • true ile config_enableMultiUserUI

Cihaz üreticileri maksimum kullanıcı sayısına karar verebilir. Cihaz üreticileri veya başkaları ayarları değiştirdiyse SMS ve telefon görüşmelerinin Android Uyumluluk Tanımlama Belgesi'nde (CDD) tanımlandığı şekilde çalıştığından emin olmalıdırlar.

Birden fazla kullanıcıyı yönetme

Kullanıcıların ve profillerin (kısıtlanmış profiller hariç) yönetimi, kullanımı kısıtlamak için DevicePolicyManager sınıfında API'yi programlı olarak çağıran uygulamalar tarafından gerçekleştirilir.

Kuruluşlar, yukarıda belirtilen türleri DevicePolicyManager ve UserManager API'leriyle birlikte kullanarak kullanım alanlarına özel çözümler oluşturabilir, böylece cihazlardaki uygulamaların ve verilerin kullanım süresini ve kapsamını yönetebilir.

Çok kullanıcılı sistem davranışı

Bir cihaza kullanıcı eklendiğinde, ön planda başka bir kullanıcı olduğunda bazı işlevler kısıtlanır. Uygulama verileri kullanıcıya göre ayrıldığından bu uygulamaların durumu kullanıcıya göre değişir. Örneğin, şu anda odakta olmayan bir kullanıcının hesabına gönderilen e-postalar, söz konusu kullanıcı ve hesap cihazda etkin olana kadar kullanılamaz.

Not: Telefon ve SMS işlevlerini ikincil bir kullanıcı için etkinleştirmek veya devre dışı bırakmak üzere Ayarlar > Kullanıcılar'a gidin, kullanıcıyı seçin ve Telefon aramalarına ve SMS'ye izin ver ayarını kapalı duruma getirin.

İkincil kullanıcı arka plandayken bazı kısıtlamalar vardır. Örneğin, arka plandaki ikincil kullanıcı kullanıcı arayüzünü görüntüleyemez veya Bluetooth hizmetlerini etkinleştiremez. Ayrıca, cihazın ön plandaki kullanıcıdaki işlemler için ek belleğe ihtiyacı varsa sistem işlemi, arka plandaki ikincil kullanıcıları durdurur.

Android cihazda birden fazla kullanıcı kullanırken aşağıdaki davranışı göz önünde bulundurun:

  • Bildirimler, tek bir kullanıcının tüm hesaplarında aynı anda görünür.
  • Diğer kullanıcılara yönelik bildirimler, etkinleştirilene kadar görünmez.
  • Her kullanıcı, uygulama yükleyip yerleştirebileceği bir çalışma alanına sahip olur.
  • Hiçbir kullanıcı başka bir kullanıcının uygulama verilerine erişemez.
  • Herhangi bir kullanıcı, tüm kullanıcılar için yüklü uygulamaları etkileyebilir.
  • Yönetici kullanıcılar, ikincil kullanıcılar tarafından oluşturulan uygulamaları veya hatta çalışma alanının tamamını kaldırabilir.
  • Varsayılan olarak, misafir kullanıcı oturumundaki bilgiler misafir modundan çıkarken korunmaz. Misafir kullanıcı oturumundan alınan bilgilerin kalıcı olmasını istiyorsanız config_guestUserAllowEphemeralStateChange değerini false olarak ayarlayan bir kaynak yer paylaşımı dosyası oluşturmanız gerekir. Yer paylaşımı dosyası oluşturma hakkında daha fazla bilgi için Derlemeyi kaynak yer paylaşımlarıyla özelleştirme başlıklı makaleyi inceleyin.

Android Automotive çok kullanıcılı

Android Automotive, paylaşılan cihaz deneyimi sunmak için Android'in çok kullanıcılı uygulamasını kullanır.

Otomotiv kullanıcı türleri

Yukarıda listelenen kullanıcı türlerine ek olarak, Otomotiv sürümleri aşağıdaki kullanıcı türleri için de önemlidir:

  • Gözetimsiz sistem kullanıcısı. Sistem kullanıcısı tüm sistem hizmetlerini barındırır. Automotive'te birden fazla kullanıcıyı desteklemek için sistem kullanıcısının da başsız olması gerekir. Yalnızca bir headless kullanıcı vardır. Gözetimli sistem kullanıcısı:
    • Her zaman arka planda çalışmalıdır.
    • Cihaz hazırlığı dışında kullanıcı tarafından doğrudan kaldırılamaz veya erişilemez. Örneğin, kullanıcılar uygulama indirme veya hesap ekleme gibi işlemleri gerçekleştirmek için bu kullanıcı türüne geçemez.
    • Yalnızca fabrika ayarlarına sıfırlamayla temizlenebilir.
  • Normal kullanıcılar. Yukarıda açıklanan İkincil Kullanıcılar ile aynıdır. Bununla birlikte, ikincil kullanıcılar:
    • Arka planda çalışmaz (başka bir uygulamaya geçiş yapıldıktan sonra).
    • Doğrudan kullanıcı arayüzü üzerinden oluşturulabilir.
    • Ayrı uygulama verilerine sahip ancak sistem genelindeki bazı ayarları paylaşan. Örneğin, kablosuz bağlantı ve Bluetooth.

Uyarılar

Aşağıdaki istisnalar, Automotive'teki başsız sistem kullanıcısı ve normal (ikincil) kullanıcılar için geçerlidir:

  • Başsız sistem kullanıcısı, iş profillerini desteklemez.
  • Varsayılan olarak, normal (ikincil) kullanıcılar telefon aramalarına ve kısa mesajlara tam erişime sahiptir.
  • Varsayılan olarak, normal (ikincil) kullanıcılar arka planda çalışmaz.

Gözetimli sistem kullanıcısını etkinleştirme

Android 10'dan itibaren çok kullanıcılı özellik, otomotiv kullanım alanları için kullanılabilir. Önemli farklılıklar arasında şunlar yer alır:

  • Sistem kullanıcısı, başsızdır ve yalnızca arka planda çalışır.
  • Gerçek kullanıcılar sistem kullanıcısıyla etkileşime girmez.

Başsız sistem kullanıcısını etkinleştirmek için cihaz üreticilerinin yukarıda açıklandığı şekilde çok kullanıcılı özelliği etkinleştirmesi gerekir.

Gözetimli olmayan kullanıcı etkinleştirildiğinde:
  1. Cihazı Otomotiv olarak tanımlamak için android.hardware.type.automotive özelliğini ekleyin.
  2. ro.fw.headless_system_user değerini true olarak ayarlayın.
  3. config_multiuserMaximumUsers değerini 2 (veya daha yüksek) olarak ayarlayın.

Daha fazla bilgi için Automotive'teki Çok Kullanıcılı Destek bölümüne bakın.

Birden fazla ekranda Android Automotive çok kullanıcılı

Android 15, tam ikincil kullanıcıların (mevcut ön plan kullanıcısı olmayan) etkinlikleri başlatmasına ve atandıkları ekrandaki kullanıcı arayüzüne erişmesine olanak tanır. Bu özellik, Android Automotive OS'te birden fazla eşzamanlı kullanıcının, tek bir Android örneğinde birden fazla yolcuya özel bir kullanıcı arayüzü deneyimi sunan araç içi deneyimleri desteklemesine olanak tanır.

Bu özelliği etkinleştirmek için cihaz üreticilerinin, frameworks/base/core/res/res/values/config.xml bölümündeki aşağıdaki değeri değiştirecek bir kaynak yer paylaşımı tanımlaması gerekir:

<!-- Whether the device allows full users to start in background visible on displays.
Should be false for most devices, except automotive vehicle with passenger displays.
Note: this flag does NOT control the Communal Profile, which is not a full user. -->

<bool name="config_multiuserVisibleBackgroundUsers">false></bool>

Aşağıdaki ek yapılandırmayı etkinleştirerek yalnızca yolcu (sürücü yok) deneyimini deneyebilirsiniz:

<!-- Whether the device allows users to start in background visible on the default display.
    Should be false for all devices in production. Can be enabled only for development use
    in passenger-only automotive build (i.e., when Android runs in a separate system in the
    back seat to manage the passenger displays).
    When set to true, config_multiuserVisibleBackgroundUsers must also be true. -->

<bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>

Android 15'te, araç içi deneyimi misafir kullanıcı olarak birden fazla yolcu için de etkinleştirebilirsiniz. Geliştirme amaçlı kullanım için birden fazla misafir kullanıcıyı etkinleştirmek isteyen cihaz üreticilerinin, frameworks/base/core/res/res/xml/config_user_types.xml'te izin verilen maksimum misafir kullanıcı sayısını yapılandıran bir kaynak yer paylaşımı tanımlaması gerekir. Aşağıdaki örnekte bu yer paylaşımı gösterilmektedir:

<user-types>
   <full-type
       name="android.os.usertype.full.GUEST"
       max-allowed='4'>
       <default-restrictions no_factory_reset="true"
           no_remove_user="true"
           no_modify_accounts="true"
           no_install_apps="true"
           no_install_unknown_sources="true"
           no_uninstall_apps="true"/>
   </full-type>
</user-types>