Birden fazla kullanıcıyı destekleyin

Android, kullanıcı hesaplarını ve uygulama verilerini ayırarak tek bir Android cihazında 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 bir müdahale ekibi çağrı üzerine görev için bir mobil cihazı paylaşabilir.

Terminoloji

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

Genel

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

  • Kullanıcı: Her kullanıcının farklı bir gerçek kişi tarafından kullanılması amaçlanmıştır. Her kullanıcının farklı uygulama verileri ve bazı benzersiz ayarların yanı sıra, kullanıcılar arasında açıkça geçiş yapmak için bir kullanıcı arayüzü vardır. Bir kullanıcı, başka bir kullanıcı etkinken arka planda çalışabilir; sistem, uygun olduğunda kaynakları korumak için kullanıcıları kapatmayı yönetir. İkincil kullanıcılar doğrudan kullanıcı arayüzü aracılığıyla veya Cihaz Yönetimi uygulamasından oluşturulabilir.
  • Hesap: Hesaplar bir kullanıcı içinde bulunur ancak bir kullanıcı tarafından tanımlanmaz veya kullanıcı herhangi bir hesap tarafından tanımlanmaz veya herhangi bir hesaba bağlanmaz. Kullanıcılar ve profiller kendi benzersiz hesaplarını içerir ancak işlevsel olmaları için hesaplara sahip olmaları gerekmez. Hesap listesi kullanıcıya göre farklılık gösterir. Ayrıntılar için Hesap sınıfı tanımına bakın.
  • Profil: Profil, uygulama verilerini ayırmıştır ancak sistem genelindeki bazı ayarları (örneğin, Wi-Fi ve Bluetooth) paylaşır. Profil, bir kullanıcının varlığının bir alt kümesidir ve ona bağlıdır. Bir kullanıcının birden fazla profili olabilir. Profiller bir Cihaz Yönetimi uygulaması aracılığıyla oluşturulur. Bir profilin her zaman, profili oluşturan kullanıcı tarafından tanımlanan bir üst kullanıcıyla değişmez bir ilişkisi vardır. Profiller, oluşturan kullanıcının kullanım ömründen sonra var olmaz.
  • Uygulama: Bir uygulamanın verileri, ilişkili her kullanıcıda bulunur. Uygulama verileri, aynı kullanıcı içindeki diğer uygulamalardan korumalı alana alınır. Aynı kullanıcı içindeki uygulamalar IPC aracılığıyla birbirleriyle etkileşime girebilir. Ayrıntılar için İşletmeler için Android'e bakın.

Kullanıcı kategorileri

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

  • Sistem kullanıcısı: Bir 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 yalnızca kendisinin ayarlayabileceği özel ayrıcalıkları ve ayarları vardır.
  • Başsız sistem kullanıcısı: Cihaz başsız sistem kullanıcı modunda çalışacak şekilde yapılandırılmışsa ( ro.fw.mu.headless_system_user=true ayarlanarak) cihaza eklenen ilk kullanıcı. Başsız sistem kullanıcısı her zaman arka planda çalışır, dolayısıyla bu tür cihazlar, kullanıcı etkileşimini sağlamak için ek ön plan kullanıcılarına ihtiyaç duyar.
  • İkincil kullanıcı: Sistem kullanıcısı dışında cihaza eklenen herhangi bir kullanıcı. İkincil kullanıcılar kaldırılabilir (kendileri tarafından veya yönetici kullanıcı tarafından) ve cihazdaki diğer kullanıcıları etkileyemezler. Bu kullanıcılar arka planda çalışabilir ve ağ bağlantısına sahip olmaya devam edebilir.
  • Konuk kullanıcı: Geçici ikincil kullanıcı. Konuk kullanıcılar, yararlılığı sona erdiğinde konuk kullanıcıyı hızlı bir şekilde silmek için açık bir seçeneğe sahiptir. Aynı anda yalnızca bir konuk kullanıcı olabilir.
  • Yönetici kullanıcı: Diğer kullanıcıları oluşturma ve kaldırma iznine sahip olan ve ayrıca bazı genel çok kullanıcılı ayarları kontrol eden bir 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ı içerecek şekilde bir uygulama tarafından oluşturulur. Bunlar yalnızca profil sahibi (şirket profilini oluşturan uygulama) tarafından yönetilir. Başlatıcı, bildirimler ve son görevler ana kullanıcı ve şirket profili tarafından paylaşılır.
  • Kısıtlı profil: Kısıtlı profilde hangi uygulamaların mevcut olduğunu kontrol edebilen ana kullanıcıya dayalı hesapları kullanır. Yalnızca tabletlerde ve televizyon cihazlarında kullanılabilir.
  • Profili kopyala: Android, cihazda tek bir uygulamanın iki örneğinin çalıştırılmasını sağlamak için ayrı bir klon profili kullanıcı türünün oluşturulmasını destekler. AOSP, bu özellik için uçtan uca destek sağlamaz. OEM'lerin, özelliğin tamamını Android kullanıcılarına sunmak için özelleştirmeler eklemesi gerekiyor.

Kullanıcı türleri

Android 11, Android Çoklu Kullanıcı özelliğinin izin verdiği tüm farklı kullanıcı ve profil türlerini temsil eden, yukarıdaki kullanıcı ve profil sınıflandırmasını iyi tanımlanmış kullanıcı türleri halinde formüle etmiştir.

Önceden tanımlanmış AOSP kullanıcı türleri frameworks/base/core/java/android/os/UserManager.java dosyasında tanımlanmıştır ve şu anda şunları içermektedir:

  • 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

OEM'ler frameworks/base/core/res/res/xml/config_user_types.xml dosyasını yerleştirerek bu kullanıcı türlerini yapılandırma olanağına sahiptir. Bu, varsayılan kısıtlamalar, simgeler, rozetler ve izin verilen maksimum kullanıcı sayısı dahil olmak üzere her kullanıcı türü için varsayılan yapılandırmanın değiştirilmesini kolaylaştırır.

Yapılandırılabilir AOSP kullanıcı türlerine ek olarak OEM'ler, frameworks/base/core/res/res/xml/config_user_types.xml dosyasını kullanarak yeni profil türleri tanımlayabilir. Bu, OEM'lerin istenirse kendi yönetilmeyen profil türlerini tanıtmasına olanak tanır. Ancak, yönetilen profilleri kontrol eden herhangi bir kodun artık uygunsa yeni profil türünü işleyecek şekilde değiştirilmesi de dahil olmak üzere, değişiklikleri desteklemek için gereken platform değişikliklerini yapmak OEM'in sorumluluğundadır.

Çoklu kullanıcıyı 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 dosyasında aşağıdaki değerlerin yerine geçen 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 kaplamayı uygulamak ve cihazda konuk ve ikincil kullanıcıları etkinleştirmek için aşağıdaki değerleri değiştirmek üzere Android derleme sisteminin DEVICE_PACKAGE_OVERLAYS özelliğini kullanın:

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

Cihaz üreticileri maksimum kullanıcı sayısına karar verebilir. Cihaz üreticileri veya diğerleri ayarları değiştirmişse, SMS ve telefon hizmetlerinin Android Uyumluluk Tanımı Belgesinde (CDD) tanımlandığı şekilde çalışmasını sağlamalıdırlar.

Birden fazla kullanıcıyı yönetme

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

Kuruluşlar, kullanım senaryolarına göre uyarlanmış benzersiz çözümler oluşturmak için DevicePolicyManager ve UserManager API'leriyle birlikte yukarıda özetlenen türleri kullanarak cihazlardaki uygulamaların ve verilerin ömrünü ve kapsamını yönetmek için kullanıcılar ve profiller kullanabilir.

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

Kullanıcılar bir cihaza eklendiğinde, başka bir kullanıcı ön planda 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 farklılık gösterir. Örneğin, o anda odakta olmayan bir kullanıcının hesabına gönderilen e-posta, söz konusu kullanıcı ve hesap cihazda etkinleşene kadar kullanılamaz.

Not : İkincil bir kullanıcı için telefon ve SMS işlevlerini 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'e izin ver ayarını kapalı konuma getirin.

İkincil kullanıcı arka planda olduğunda bazı kısıtlamalar mevcuttur. Ö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ı olması durumunda sistem işlemi arka plandaki ikincil kullanıcıları durduracaktır.

Bir Android cihazda birden fazla kullanıcıyı çalıştırırken aşağıdaki davranışı aklınızda bulundurun:

  • Bildirimler tek bir kullanıcının tüm hesapları için aynı anda görünür.
  • Diğer kullanıcılara yönelik bildirimler etkinleşene kadar görünmez.
  • Her kullanıcıya uygulamaları yüklemek ve yerleştirmek için bir çalışma alanı verilir.
  • Hiçbir kullanıcının başka bir kullanıcının uygulama verilerine erişimi yoktur.
  • Herhangi bir kullanıcı, tüm kullanıcılar için yüklü uygulamaları etkileyebilir.
  • Yönetici kullanıcı, uygulamaları ve hatta ikincil kullanıcılar tarafından oluşturulan çalışma alanının tamamını kaldırabilir.
  • Varsayılan olarak, Konuk kullanıcı oturumundan alınan bilgiler, Konuk modundan çıkıldığında kalıcı olmaz. Konuk kullanıcı oturumundan gelen bilgilerin kalıcı olmasını istiyorsanız config_guestUserAllowEphemeralStateChange öğesini false olarak ayarlayan bir kaynak yer paylaşımı dosyası oluşturmanız gerekir. Kaplama dosyaları oluşturmaya ilişkin daha fazla bilgi için Yapıyı kaynak katmanlarıyla özelleştirme konusuna bakın.

Android Otomotiv çok kullanıcılı

Android Automotive, paylaşılan bir cihaz deneyimi sağlamak için Android'in çok kullanıcılı uygulamasına güveniyor.

Otomotiv Kullanıcı Türleri

Yukarıda listelenen kullanıcı türlerine ek olarak, Otomotiv yapıları şu tür kullanıcılar için dikkate değerdir:

  • Başsız sistem kullanıcısı. Sistem kullanıcısı tüm sistem hizmetlerini barındırır. Automotive'de birden fazla kullanıcıyı desteklemek için sistem kullanıcısının da başsız olması gerekir. Yalnızca bir başsız kullanıcı var. Başsız bir sistem kullanıcısı:
    • Her zaman arka planda çalışması gerekir.
    • Cihaz Sağlama durumu 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 görevleri gerçekleştirmek için bu Kullanıcı türüne geçiş yapamaz.
    • Yalnızca fabrika ayarlarına sıfırlama ile silinebilir.
  • Düzenli kullanıcılar. İkincil kullanıcılar haricinde yukarıda açıklanan İkincil Kullanıcılar ile aynıdır:
    • Arka planda çalıştırmayın (kapatıldıktan sonra).
    • Doğrudan kullanıcı arayüzü aracılığıyla oluşturulabilir.
    • Uygulama verilerini ayırdınız ancak sistem genelindeki bazı ayarları paylaştınız. Örneğin Wi-Fi ve Bluetooth.

Uyarılar

Aşağıdaki istisnalar, başsız sistem kullanıcısı ve Otomotiv'deki 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 çağrılarına ve mesajlara tam erişime sahiptir.
  • Varsayılan olarak normal (ikincil) kullanıcılar arka planda çalışmaz.

Başsız sistem kullanıcısını etkinleştirme

Android 10'dan itibaren çoklu kullanıcı özelliği otomotiv kullanım durumları için kullanılabilir. Önemli ayrımlar şunları içerir:

  • Sistem kullanıcısı başsızdır ve yalnızca arka planda çalışır.
  • İnsan 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ığı gibi çoklu kullanıcıyı etkinleştirmesi gerekir.

Başsız kullanıcı etkinleştirildiğinde:
  1. Cihazı Otomotiv olarak bildirmek 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 bkz. Otomotivde Çoklu Kullanıcı Desteği .

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

Android 14'teki yeni bir deneysel özellik, tam ikincil kullanıcıların (geçerli ön plan kullanıcısı olmayan ) etkinlikleri başlatmasına ve atandıkları ekrandaki kullanıcı arayüzüne erişmelerine olanak tanır. Bu özellik, Android Automotive OS'deki birden fazla eşzamanlı kullanıcının, tek bir Android örneğinde birden fazla yolcuya özel bir kullanıcı arayüzü deneyimi sağlayan araç içi deneyimleri desteklemesine olanak tanır.

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

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

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

Aşağıdaki ek yapılandırmayı etkinleştirerek yalnızca yolcuya yönelik (sürücüsüz) deneyimi 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 14'te konuk kullanıcı olarak birden fazla yolcu için araç içi deneyimi etkinleştirebilirsiniz. Birden fazla konuk kullanıcının geliştirme amaçlı kullanımına olanak sağlamak için cihaz üreticilerinin, aşağıdaki örnekte olduğu gibi, frameworks/base/core/res/res/xml/config_user_types.xml dosyasında izin verilen maksimum konuk kullanıcı sayısını yapılandıran bir kaynak yer paylaşımı tanımlaması gerekir:

<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>