Halaman ini menyediakan ringkasan tentang API, fitur, dan perubahan perilaku baru yang diperkenalkan di Android 8.0 (API level 26) yang memengaruhi Android di lingkungan perusahaan.
API dan fitur baru
Kami telah membuat mode pengelolaan pemilik profil dan pemilik perangkat menjadi lebih canggih, produktif, dan lebih mudah disediakan daripada sebelumnya. Kami juga telah mengaktifkan skenario deployment yang benar-benar baru—profil kerja pada perangkat yang terkelola sepenuhnya. Fitur ini dan fitur lainnya dijelaskan di bagian berikut.
Profil kerja di perangkat yang terkelola sepenuhnya
Di Android 8.0, perangkat yang terkelola sepenuhnya juga dapat memiliki profil kerja. Hal ini memberi perusahaan kemampuan untuk memisahkan aplikasi dan kebijakan sekaligus mempertahankan kontrol dan visibilitas di kedua profil. Pemilik perangkat yang sudah ada, atau pengontrol kebijakan perangkat (DPC) lain, dapat membuat profil terkelola.
Dengan profil kerja di perangkat terkelola sepenuhnya, pemilik perangkat dapat:
- Buat profil terkelola tanpa interaksi pengguna dengan memanggil
EXTRA_PROVISIONING_SKIP_USER_CONSENT
. - Terima notifikasi saat pengguna sekunder atau profil terkelola dibuat atau
dihapus. Callback-nya adalah
onUserAdded()
danonUserRemoved()
. - Cegah DPC lain membuat profil terkelola menggunakan
DISALLOW_ADD_MANAGED_PROFILE
. Setelan ini merupakan default di Android 8.0 untuk pemilik perangkat di perangkat yang baru disediakan atau perangkat yang diupgrade ke Android 8.0. - Pemilik perangkat juga dapat mencegah pengguna menghapus profil terkelola yang ada
menggunakan
DISALLOW_REMOVE_MANAGED_PROFILE
.
Pemilik perangkat dan pemilik profil dapat saling berkomunikasi jika mereka berasal dari APK yang sama dan pemilik berafiliasi (lihat Afiliasi pengguna di bawah).
Untuk informasi yang lebih mendetail tentang mendukung skenario deployment baru ini, lihat halaman khusus untuk profil kerja pada perangkat yang terkelola sepenuhnya.
Afiliasi pengguna
Jika pemilik perangkat dan pemilik profil mewakili organisasi yang sama:
Pemilik perangkat dan profil dapat saling berkomunikasi dalam APK yang sama—mereka mungkin ingin berbagi kebijakan atau status (lihat Profil kerja di perangkat yang terkelola sepenuhnya di atas).
Fitur seluruh perangkat, seperti logging atau pemberian izin mode mengunci tugas, dapat berlaku untuk pengguna terafiliasi.
ID Afiliasi, yang dilampirkan ke profil atau pengguna, mengidentifikasi organisasi. Jika ID afiliasi cocok, pengguna akan berafiliasi. Pemilik perangkat dan pemilik profil menggunakan setAffiliationIds() untuk menetapkan ID afiliasi mereka. Merepresentasikan organisasi menggunakan ID string yang panjang dan sulit ditebak.
Akses baru bagi pengguna terafiliasi
Jika semua profil dan pengguna sekunder di perangkat berafiliasi dengan pemilik perangkat, fitur berikut akan tersedia:
- Logging keamanan menggunakan
setSecurityLoggingEnabled()
. - Logging aktivitas jaringan menggunakan
setNetworkLoggingEnabled()
. - Pelaporan bug menggunakan
requestBugreport()
.
Logging keamanan dan pelaporan bug sebelumnya hanya tersedia untuk perangkat satu pengguna, atau perangkat yang hanya memiliki satu profil dan satu pengguna.
Mode mengunci tugas tersedia untuk pengguna sekunder dan profil terkelola saat
berafiliasi dengan pemilik perangkat melalui setLockTaskPackages()
.
Untuk informasi lebih mendetail tentang afiliasi pengguna, lihat Pengguna terafiliasi.
Pernyataan penyangkalan penyediaan yang disesuaikan
DPC kini dapat menampilkan pernyataan penyangkalannya sendiri kepada pengguna selama penyediaan. Gunakan
EXTRA_PROVISIONING_DISCLAIMERS
,
EXTRA_PROVISIONING_DISCLAIMER_HEADER
,
dan
EXTRA_PROVISIONING_DISCLAIMER_CONTENT
untuk memberikan pernyataan penyangkalan teks bergaya. Penafian kustom DPC muncul di
daftar Persyaratan yang dapat diciutkan.
Keamanan
Pemilik profil dan pemilik perangkat dapat menggunakan
setRequiredStrongAuthTimeout()
untuk mengonfigurasi periode waktu tunggu untuk membuka kunci perangkat atau profil dengan
metode autentikasi sekunder, seperti sidik jari atau perangkat dipercaya. Setelah
periode waktu tunggu berakhir, pengguna harus membuka kunci perangkat atau profil menggunakan
metode autentikasi yang kuat, seperti sandi, PIN, atau pola.
Pemilik perangkat dan pemilik profil dapat mereset sandi perangkat dan profil kerja
dengan aman menggunakan
resetPasswordWithToken()
.
Untuk perangkat yang mendukung
enkripsi berbasis file,
API ini tersedia sebelum pengguna membuka kunci perangkat atau profil, asalkan
DPC mendukung enkripsi.
Saat mengunci profil kerja di perangkat yang mendukung enkripsi berbasis file,
lockNow(int)
dapat
secara opsional menghapus kunci enkripsi utama profil kerja menggunakan
FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY
.
Kunci enkripsi juga akan dikeluarkan jika pengguna menonaktifkan profil
kerjanya.
Selain itu, pemilik perangkat dapat menggunakan
setNetworkLoggingEnabled()
untuk mengaktifkan logging jaringan kueri DNS dan koneksi TCP yang dimulai dari
perangkat milik perusahaan. Untuk informasi selengkapnya, lihat Logging Aktivitas Jaringan.
Pemilik profil dapat membatasi paket pengguna utama mana yang dapat mengamati
notifikasi profil kerja. Panggil
setPermittedCrossProfileNotificationListeners()
untuk menetapkan paket yang diizinkan yang menerima peristiwa melalui
NotificationListenerService
. Menetapkan
pemroses yang diizinkan ke null
(default) akan menonaktifkan pemberian izin dan semua
paket dapat memproses notifikasi. Untuk membatasi peristiwa ke paket sistem, teruskan Set kosong. Untuk melihat aplikasi yang tidak dapat mengakses notifikasi profil kerja, pengguna
dapat mengetuk Setelan > Aplikasi & notifikasi > Akses aplikasi khusus >
Akses notifikasi.
Terakhir, pemilik profil dan pemilik perangkat dapat mengambil informasi tentang
update sistem tertunda yang tersedia di perangkat menggunakan
getPendingSystemUpdate()
.
Delegasi API pengelolaan aplikasi
Delegasi API memungkinkan pemilik perangkat dan pemilik profil mengalihkan pengelolaan aplikasi
sepenuhnya ke aplikasi lain. Class
DevicePolicyManager
menyediakan metode untuk mengelola
cakupan delegasi yang dapat diberikan oleh pemilik perangkat dan profil ke sebuah paket:
- Metode
setDelegatedScopes()
memungkinkan pemilik perangkat dan pemilik profil memberikan akses ke API dengan hak istimewa ke aplikasi lain. - Metode
getDelegatedScopes()
menampilkan cakupan yang diberikan ke sebuah paket. getDelegatePackages()
menampilkan paket yang memiliki cakupan.
Tabel berikut menunjukkan cara berbagai metode di
DevicePolicyManager
diatur ke dalam berbagai
cakupan:
Layanan latar belakang yang berjalan lama
Pemilik perangkat dan profil dapat membuat subclass
DeviceAdminService
untuk membuat layanan latar belakang. Sistem
Android mencoba untuk menjaga layanan tetap berjalan saat pengguna sedang berjalan.
Jika Anda ingin menjalankan tugas berkala, pertimbangkan untuk menggunakan
JobScheduler
sebelum membuat layanan latar belakang.
Mengontrol layanan pencadangan
Pemilik perangkat dapat mengalihkan Android Backup Service
menggunakan metode baru di DevicePolicyManager
. Mengaktifkan dan
menonaktifkan layanan pencadangan menggunakan
setBackupServiceEnabled()
.
Periksa status layanan pencadangan menggunakan
isBackupServiceEnabled()
.
Konfigurasi proxy Wi-Fi
Pemilik perangkat dan pemilik profil dapat mengonfigurasi server proxy HTTP untuk jaringan
Wi-Fi. Gunakan file PAC atau setelan manual guna mengonfigurasi server proxy untuk setiap
jaringan Wi-Fi. Untuk menetapkan atau menghapus proxy untuk
WifiConfiguration
, panggil
metode
setHttpProxy()
-nya. Untuk mendapatkan setelan proxy, panggil getHttpProxy()
.
Dialog penjelasan untuk fitur yang dinonaktifkan oleh admin
Aplikasi Anda harus menampilkan penjelasan yang berguna bagi pengguna yang mencoba menggunakan
fitur yang dinonaktifkan oleh admin. Semua aplikasi kini dapat menggunakan
createAdminSupportIntent()
untuk membuat intent yang menampilkan dialog penjelasan saat diteruskan ke
startActivity(Intent)
.
Intent menyertakan penjelasan yang dilokalkan dan disesuaikan untuk kamera yang dinonaktifkan,
screenshot yang dinonaktifkan, dan semua pembatasan
UserManager
.
Membatasi Bluetooth
Pemilik perangkat dapat menonaktifkan Bluetooth—memengaruhi semua pengguna dan profil di
perangkat. Untuk menonaktifkan Bluetooth, tambahkan batasan pengguna
DISALLOW_BLUETOOTH
.
Pemilik perangkat dan pemilik profil dapat mencegah pengguna mengirim file melalui Bluetooth
menggunakan DISALLOW_BLUETOOTH_SHARING
. Penerimaan file
tidak akan terpengaruh. Jika ditetapkan oleh pemilik perangkat, DISALLOW_BLUETOOTH_SHARING
berlaku
untuk semua pengguna di perangkat tersebut. Setelan ini merupakan default di Android 8.0 untuk profil
baru dan profil yang sudah ada di perangkat yang diupgrade ke Android 8.0.
Perubahan perilaku
Jika membangun aplikasi untuk bisnis, termasuk DPC, Anda harus meninjau perubahan perilaku berikut di Android 8.0 dan memodifikasi aplikasi sebagaimana mestinya.
Menghapus pengguna
Pemilik perangkat dapat menghapus pengguna sekunder dan profil terkelola menggunakan
removeUser()
,
meskipun DISALLOW_REMOVE_USER
diaktifkan.
Keamanan
Autentikasi
Perubahan berikut telah diterapkan di
class DevicePolicyManager
:
- Metode
lockNow()
hanya mengunci profil kerja jika verifikasi kerja terpisah aktif. - Metode
resetPassword()
tidak lagi tersedia untuk DPC yang bertindak sebagai pemilik perangkat atau pemilik profil dan menargetkan Android 8.0. Jika dipanggil, pengecualian keamanan akan ditampilkan. Sebagai gantinya, DPC harus menggunakanresetPasswordWithToken()
.Catatan: DPC yang menargetkan Android 7.1.1 (API level 25) atau yang lebih rendah, serta DPC dengan hak istimewa admin perangkat saja, tidak terpengaruh oleh perubahan ini.
- Untuk perangkat yang mendukung enkripsi berbasis file,
isActivePasswordSufficient()
tidak tersedia sebelum pengguna membuka kunci perangkat untuk pertama kalinya setelah mulai ulang. Jika dipanggil sebelum pengguna membuka kunci perangkat, pengecualian akan ditampilkan.
Data dari profil kerja yang dikunci
Android 8.0 menyertakan perubahan antarmuka pengguna untuk memisahkan data dari profil kerja yang dikunci.
- Notifikasi untuk aplikasi di profil kerja sekarang mungkin menyembunyikan kontennya. Sebelumnya, panel samping notifikasi menampilkan konten untuk aplikasi kerja dari profil kerja yang terkunci.
- Layar Terbaru kini menampilkan panel biasa untuk menjalankan aplikasi dari profil kerja yang terkunci. Panel biasa berwarna berisi ikon dan nama aplikasi. Sebelumnya, aktivitas atau tugas dari profil kerja yang terkunci menampilkan pratinjau di layar Terbaru.
Integritas perangkat
- Flag
ENSURE_VERIFY_APPS
sekarang menjadi pembatasan pengguna global. Jika ada pengguna di perangkat yang memiliki batasan ini, verifikasi aplikasi akan diterapkan pada semua pengguna di perangkat tersebut. Misalnya, jika pemilik profil menetapkan pembatasan pada profil kerja, verifikasi aplikasi akan diterapkan pada profil pribadi pengguna. - Metode
onSystemUpdatePending()
kini dipanggil untuk pemilik profil, selain pemilik perangkat. - Saat menggunakan class
SystemUpdatePolicy
, kebijakan penundaan tidak lagi berlaku untuk patch keamanan, sehingga patch keamanan tidak dapat ditunda. Namun, perilaku jenis kebijakan lainnya, seperti otomatis dan berjendela, tidak akan terpengaruh. - Pemilik perangkat dapat memicu reset ke setelan pabrik menggunakan
wipeData()
, meskipunDISALLOW_FACTORY_RESET
diaktifkan.
VPN selalu aktif
Android 8.0 menyertakan perubahan antarmuka pengguna untuk membantu pengguna memahami status koneksi VPN yang selalu aktif:
- Jika koneksi VPN selalu aktif terputus atau tidak dapat terhubung, pengguna akan melihat notifikasi yang tidak dapat ditutup. Mengetuk notifikasi akan menampilkan setelan konfigurasi VPN. Notifikasi akan menghilang saat VPN terhubung kembali atau pengguna menonaktifkan opsi VPN selalu aktif.
- VPN yang selalu aktif memungkinkan pengguna perangkat memblokir koneksi jaringan apa pun yang tidak menggunakan VPN. Jika opsi ini diaktifkan, aplikasi Setelan akan memperingatkan pengguna bahwa mereka tidak akan memiliki koneksi internet sampai VPN terhubung. Setelan meminta pengguna untuk melanjutkan atau membatalkan.
VpnService
aplikasi VPN kini harus memanggil
metode startForeground()
setelah peluncuran. Karena sistem Android memulai layanan aplikasi VPN
secara langsung, melakukan transisi ke latar depan adalah tanggung jawab aplikasi. Android 8.0
menonaktifkan aplikasi VPN yang tidak mentransisikan layanan VPN ke latar depan.
Callback sandi
Callback perubahan sandi DeviceAdminReceiver
kini menyertakan parameter user
untuk mengidentifikasi pengguna atau profil yang
memiliki sandi. Tanda tangan metode baru adalah:
onPasswordChanged(Context, Intent, UserHandle)
onPasswordExpiring(Context, Intent, UserHandle)
onPasswordFailed(Context, Intent, UserHandle)
onPasswordSucceeded(Context, Intent, UserHandle)
Implementasi default dari setiap metode baru akan memanggil versi sebelumnya—melepaskan argumen pengguna. Android 8.0 menghentikan penggunaan metode sebelumnya.
Delegasi API pengelolaan aplikasi
Metode berikut dalam class DevicePolicyManager
kini tidak digunakan lagi:
setCertInstallerPackage()
getCertInstallerPackage()
setApplicationRestrictionsManagingPackage()
getApplicationRestrictionsManagingPackage()
Selain itu, Anda kini dapat mendelegasikan satu cakupan ke beberapa paket. Dengan kata lain, pemilik perangkat dan pemilik profil dapat memberikan akses dua paket yang berbeda ke kumpulan API yang sama secara bersamaan.