Android 6.0 (M) menawarkan berbagai fitur baru untuk pengguna dan developer aplikasi. Dokumen ini menyediakan pengantar API yang paling penting.
Mulai mengembangkan
Untuk mulai membuat aplikasi untuk Android 6.0, Anda harus mendapatkan Android SDK terlebih dahulu. Lalu, gunakan SDK Manager untuk mendownload Android 6.0 SDK Platform dan System Image.
Memperbarui target API level Anda
Untuk lebih mengoptimalkan aplikasi Anda pada perangkat yang menjalankan Android,
setel targetSdkVersion
ke
"23"
, instal aplikasi Anda di image sistem
Android, uji, lalu publikasikan aplikasi yang telah diupdate dengan
perubahan ini.
Anda dapat menggunakan API Android sekaligus mendukung versi lama dengan menambahkan kondisi ke kode yang akan memeriksa API level sistem sebelum menjalankan API yang tidak didukung oleh minSdkVersion
Anda.
Untuk mempelajari lebih lanjut cara mempertahankan kompatibilitas mundur, baca Mendukung
Berbagai Versi Platform.
Untuk mengetahui informasi selengkapnya tentang cara kerja API level, baca Apa itu API Level?
Autentikasi Sidik Jari
Rilis ini menawarkan API baru untuk memungkinkan Anda mengautentikasi pengguna dengan menggunakan pemindaian sidik jari mereka di perangkat yang didukung. Gunakan API ini bersama dengan sistem Android Keystore.
Untuk mengautentikasi pengguna melalui pemindaian sidik jari, dapatkan instance class
FingerprintManager
baru dan panggil
metode
authenticate()
. Aplikasi harus berjalan di perangkat yang
kompatibel dengan sensor sidik jari. Anda harus menerapkan antarmuka pengguna untuk alur autentikasi
sidik jari di aplikasi, dan menggunakan ikon sidik jari Android standar di UI Anda.
Ikon sidik jari Android (c_fp_40px.png
) disertakan dalam
contoh Autentikasi Biometrik.
Jika Anda mengembangkan beberapa aplikasi yang menggunakan autentikasi sidik jari, perhatikan bahwa setiap aplikasi harus mengautentikasi sidik jari pengguna secara independen.
Untuk menggunakan fitur ini di aplikasi Anda, pertama-tama tambahkan
izin USE_FINGERPRINT
dalam manifes.
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
Untuk melihat implementasi aplikasi autentikasi sidik jari, lihat contoh Autentikasi Biometrik. Untuk menunjukkan cara menggunakan API autentikasi ini bersama API Android lainnya, tonton video API Sidik Jari dan Pembayaran.
Jika Anda menguji fitur ini, ikuti langkah-langkah ini:
- Pasang Android SDK Tools Revision 24.3, jika Anda belum melakukannya.
- Daftarkan sidik jari baru di emulator dengan membuka Setelan > Keamanan > Sidik Jari, lalu ikuti petunjuk pendaftaran.
- Gunakan emulator untuk mengemulasi peristiwa sentuhan sidik jari dengan
perintah berikut. Gunakan perintah yang sama untuk mengemulasi peristiwa sentuhan sidik jari di layar kunci atau
di aplikasi Anda.
adb -e emu finger touch <finger_id>
Di Windows, Anda mungkin harus menjalankan
telnet 127.0.0.1 <emulator-id>
yang diikuti denganfinger touch <finger_id>
.
Konfirmasi Kredensial
Aplikasi Anda bisa mengautentikasi pengguna berdasarkan sudah berapa lama mereka membuka kunci perangkatnya sejak terakhir kali. Fitur ini membebaskan pengguna dari keharusan mengingat sandi khusus aplikasi tambahan, sehingga Anda tidak perlu menerapkan antarmuka pengguna autentikasi Anda sendiri. Aplikasi Anda harus menggunakan fitur ini bersama-sama dengan implementasi kunci publik atau kunci rahasia untuk autentikasi pengguna.
Untuk menetapkan durasi waktu tunggu agar kunci yang sama dapat digunakan kembali setelah pengguna berhasil diautentikasi, panggil metode setUserAuthenticationValidityDurationSeconds()
baru saat menyiapkan KeyGenerator
atau KeyPairGenerator
.
Hindari menampilkan dialog autentikasi ulang secara berlebihan. Aplikasi Anda harus mencoba menggunakan objek kriptografi terlebih dahulu, dan jika waktu tunggu habis, gunakan metode createConfirmDeviceCredentialIntent()
untuk mengautentikasi ulang pengguna dalam aplikasi Anda.
Penautan Aplikasi
Rilis ini menyempurnakan sistem maksud Android dengan menyediakan penautan aplikasi yang lebih andal. Fitur ini memungkinkan Anda mengaitkan aplikasi dengan domain web yang dimiliki. Berdasarkan pengaitan ini, platform dapat menentukan aplikasi default yang akan digunakan untuk menangani link web tertentu dan tidak meminta pengguna memilih aplikasi. Untuk mempelajari cara menerapkan fitur ini, lihat Menangani Link Aplikasi.
Auto Backup for Apps
Sistem sekarang melakukan pencadangan dan pemulihan penuh atas data aplikasi secara otomatis. Aplikasi Anda harus menargetkan Android 6.0 (API level 23) untuk memungkinkan perilaku ini; Anda tidak perlu memasukkan kode tambahan. Jika pengguna menghapus akun Google mereka, data cadangan mereka juga akan dihapus. Untuk mempelajari cara kerja fitur ini dan cara mengonfigurasi apa yang akan dicadangkan di sistem file, lihat Mengonfigurasi Pencadangan Otomatis untuk Aplikasi.
Direct Share
Rilis ini melengkapi Anda dengan berbagai API agar pengguna bisa berbagi secara intuitif dan cepat. Kini Anda dapat menentukan target berbagi langsung yang meluncurkan aktivitas tertentu di aplikasi. Target berbagi langsung ini diekspos kepada pengguna melalui menu Bagikan. Fitur ini memungkinkan pengguna berbagi konten ke target, seperti kontak, dalam aplikasi lain. Misalnya, target berbagi langsung dapat meluncurkan aktivitas di aplikasi jaringan sosial lain, yang memungkinkan pengguna berbagi konten langsung dengan teman atau komunitas tertentu di aplikasi tersebut.
Untuk mengaktifkan target berbagi langsung, Anda harus menentukan class yang memperluas
class ChooserTargetService
. Deklarasikan layanan Anda
dalam manifes. Dalam deklarasi tersebut, tentukan
izin BIND_CHOOSER_TARGET_SERVICE
dan
filter intent menggunakan tindakan
SERVICE_INTERFACE
.
Contoh berikut menunjukkan cara mendeklarasikan
ChooserTargetService
dalam manifes.
<service android:name=".ChooserTargetService" android:label="@string/service_name" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> <intent-filter> <action android:name="android.service.chooser.ChooserTargetService" /> </intent-filter> </service>
Untuk setiap aktivitas yang ingin diekspos ke
ChooserTargetService
, tambahkan
elemen <meta-data>
dengan nama
"android.service.chooser.chooser_target_service"
di manifes aplikasi Anda.
<activity android:name=".MyShareActivity” android:label="@string/share_activity_label"> <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter> <meta-data android:name="android.service.chooser.chooser_target_service" android:value=".ChooserTargetService" /> </activity>
Interaksi Suara
Rilis ini menyediakan API interaksi suara baru yang, bersama dengan
Voice Actions,
memungkinkan Anda membangun pengalaman percakapan suara ke dalam aplikasi. Panggil
metode isVoiceInteraction()
untuk menentukan apakah voice action memicu
aktivitas Anda. Jika demikian, aplikasi Anda dapat menggunakan
class VoiceInteractor
untuk meminta konfirmasi suara dari pengguna, memilih
dari daftar opsi, dan lainnya.
Umumnya interaksi suara berasal dari tindakan suara pengguna. Namun, aktivitas interaksi suara juga
dapat dimulai tanpa input pengguna. Misalnya, aplikasi lain yang diluncurkan melalui interaksi suara
juga dapat mengirim intent untuk meluncurkan interaksi suara. Untuk menentukan apakah aktivitas Anda
diluncurkan dari kueri suara pengguna atau dari aplikasi interaksi suara lain, panggil
metode isVoiceInteractionRoot()
. Jika aplikasi lain meluncurkan aktivitas
Anda, metode ini akan menampilkan false
. Kemudian, aplikasi Anda dapat meminta pengguna untuk mengonfirmasi bahwa
mereka memang menginginkan tindakan ini.
Untuk mempelajari lebih lanjut cara menerapkan voice action, lihat situs developer Voice Actions.
Assist API
Rilis ini menawarkan cara baru bagi pengguna untuk terlibat dengan aplikasi Anda melalui semacam asisten. Untuk menggunakan fitur ini, pengguna harus mengaktifkan asisten agar dapat menggunakan konteks saat ini. Setelah diaktifkan, pengguna dapat memanggil asisten dalam aplikasi apa pun dengan menekan lama tombol Layar Utama.
Aplikasi Anda dapat memilih untuk tidak membagikan konteks saat ini kepada asisten dengan menyetel
tanda FLAG_SECURE
. Selain
kumpulan informasi standar yang diteruskan platform ke asisten, aplikasi Anda dapat membagikan
informasi tambahan menggunakan class AssistContent
baru.
Untuk menyediakan konteks tambahan kepada asisten dari aplikasi Anda, ikuti langkah-langkah ini:
- Mengimplementasikan antarmuka
Application.OnProvideAssistDataListener
. - Daftarkan pemroses ini menggunakan
registerOnProvideAssistDataListener()
. - Untuk memberikan informasi kontekstual khusus aktivitas, ganti callback
onProvideAssistData()
dan, secara opsional, callbackonProvideAssistContent()
baru.
Perangkat Storage yang Bisa Diadopsi
Dengan rilis ini, pengguna dapat mengadopsi perangkat penyimpanan eksternal seperti kartu SD. Mengadopsi
perangkat penyimpanan eksternal akan mengenkripsi dan memformat perangkat tersebut agar berfungsi seperti penyimpanan internal. Fitur
ini memungkinkan pengguna memindahkan aplikasi dan data pribadi aplikasi tersebut di antara perangkat penyimpanan. Saat
memindahkan aplikasi, sistem akan mengikuti preferensi
android:installLocation
dalam manifes.
Jika aplikasi Anda mengakses API atau kolom berikut, perhatikan bahwa jalur file yang ditampilkan akan berubah secara dinamis saat aplikasi dipindahkan antara perangkat penyimpanan internal dan eksternal. Saat membangun jalur file, Anda disarankan agar selalu memanggil API ini secara dinamis. Jangan menggunakan jalur file hasil hardcode atau mempertahankan jalur file yang sepenuhnya memenuhi syarat dan telah dibuat sebelumnya.
- Metode
Context
: - Kolom
ApplicationInfo
:
Untuk men-debug fitur ini, Anda dapat mengaktifkan adopsi drive USB yang terhubung ke perangkat Android melalui kabel USB On-The-Go (OTG), dengan menjalankan perintah ini:
$ adb shell sm set-force-adoptable true
Notifikasi
Rilis ini menambahkan perubahan API berikut untuk notifikasi:
- Tingkat filter
INTERRUPTION_FILTER_ALARMS
baru yang sesuai dengan mode jangan ganggu Hanya alarm yang baru. - Nilai kategori
CATEGORY_REMINDER
baru yang digunakan untuk membedakan pengingat yang dijadwalkan pengguna dengan acara lain (CATEGORY_EVENT
) dan alarm (CATEGORY_ALARM
). - Class
Icon
baru yang dapat dilampirkan ke notifikasi melalui metodesetSmallIcon()
dansetLargeIcon()
. Demikian pula, metodeaddAction()
kini menerima objekIcon
, bukan ID resource drawable. - Metode
getActiveNotifications()
baru yang memungkinkan aplikasi Anda mengetahui notifikasi mana yang saat ini aktif.
Dukungan Stilus Bluetooth
Rilis ini menyediakan dukungan yang disempurnakan untuk masukan pengguna dengan menggunakan stilus Bluetooth. Pengguna dapat menyambungkan
dan menghubungkan stilus Bluetooth yang kompatibel dengan ponsel atau tablet. Saat terhubung, informasi
posisi dari layar sentuh digabungkan dengan informasi tekanan dan tombol dari stilus untuk
memberikan ekspresi yang lebih luas daripada hanya dengan layar sentuh. Aplikasi Anda dapat memproses
penekanan tombol stilus dan melakukan tindakan sekunder, dengan mendaftarkan
objek View.OnContextClickListener
dan
GestureDetector.OnContextClickListener
dalam aktivitas Anda.
Gunakan metode dan konstanta MotionEvent
untuk mendeteksi interaksi
tombol stilus:
- Jika pengguna menyentuh stilus dengan tombol di layar aplikasi, metode
getTooltype()
akan menampilkanTOOL_TYPE_STYLUS
. - Untuk aplikasi yang menargetkan Android 6.0 (API level 23), metode
getButtonState()
menampilkanBUTTON_STYLUS_PRIMARY
saat pengguna menekan tombol stilus utama. Jika stilus memiliki tombol kedua, metode yang sama akan menampilkanBUTTON_STYLUS_SECONDARY
saat pengguna menekannya. Jika pengguna menekan kedua tombol secara bersamaan, metode akan menampilkan kedua nilai OR bersama (BUTTON_STYLUS_PRIMARY
|BUTTON_STYLUS_SECONDARY
). -
Untuk aplikasi yang menargetkan versi platform yang lebih rendah, metode
getButtonState()
akan menampilkanBUTTON_SECONDARY
(untuk penekanan tombol stilus utama),BUTTON_TERTIARY
(untuk penekanan tombol stilus sekunder), atau keduanya.
Pemindaian Bluetooth Low Energy yang Ditingkatkan
Jika aplikasi melakukan pemindaian Bluetooth Hemat Energi, gunakan metode
setCallbackType()
baru untuk menentukan bahwa Anda ingin sistem memberi tahu callback saat pertama kali menemukan, atau melihat
setelah sekian lama, paket iklan yang cocok dengan kumpulan ScanFilter
. Pendekatan
terhadap pemindaian ini lebih hemat daya daripada yang diberikan di versi platform sebelumnya.
Dukungan Hotspot 2.0 Release 1
Rilis ini menambahkan dukungan untuk spesifikasi Hotspot 2.0 Release 1 pada perangkat Nexus 6 dan Nexus 9. Untuk
menyediakan kredensial Hotspot 2.0 di aplikasi Anda, gunakan metode baru
class WifiEnterpriseConfig
, seperti
setPlmn()
dan
setRealm()
. Pada objek WifiConfiguration
, Anda dapat menetapkan kolom FQDN
dan providerFriendlyName
.
Metode isPasspointNetwork()
baru akan menunjukkan apakah jaringan yang terdeteksi mewakili titik akses Hotspot 2.0.
Mode Tampilan 4K
Platform ini kini memungkinkan aplikasi meminta agar resolusi tampilan diupgrade ke rendering 4K
pada hardware yang kompatibel. Untuk membuat kueri resolusi fisik saat ini, gunakan
Display.Mode
API baru. Jika UI digambar pada resolusi logis yang lebih rendah dan
ditingkatkan ke resolusi fisik yang lebih besar, perlu diketahui bahwa resolusi fisik yang
ditampilkan metode getPhysicalWidth()
mungkin berbeda dari resolusi
logis yang dilaporkan oleh getSize()
.
Anda dapat meminta sistem untuk mengubah resolusi fisik di aplikasi saat aplikasi berjalan, dengan menyetel
properti preferredDisplayModeId
jendela
aplikasi Anda. Fitur ini berguna jika Anda ingin beralih ke resolusi tampilan 4K. Saat dalam mode tampilan
4K, UI akan terus dirender pada resolusi asli (seperti 1080p) dan ditingkatkan kualitasnya menjadi
4K, tetapi objek SurfaceView
mungkin menampilkan konten pada resolusi native.
ColorStateList Bertema
Atribut tema kini didukung di
ColorStateList
untuk perangkat yang menjalankan Android 6.0 (API level 23). Metode
Resources.getColorStateList()
dan
Resources.getColor()
tidak
digunakan lagi. Jika Anda memanggil API ini, panggil metode
Context.getColorStateList()
atau
Context.getColor()
baru. Metode ini
juga tersedia di library appcompat v4 melalui ContextCompat
.
Fitur Audio
Rilis ini menambahkan penyempurnaan pada pemrosesan audio di Android, termasuk:
- Dukungan untuk protokol MIDI, dengan API
android.media.midi
baru. Gunakan API ini untuk mengirim dan menerima peristiwa MIDI. - Class
AudioRecord.Builder
danAudioTrack.Builder
baru untuk membuat rekaman audio digital dan objek pemutaran, serta mengonfigurasi properti sumber dan sink audio untuk mengganti default sistem. - Sangkutan API untuk mengaitkan perangkat masukan dan audio. Hal ini sangat berguna jika aplikasi Anda
memungkinkan pengguna memulai penelusuran suara dari pengontrol game atau remote control yang terhubung ke Android
TV. Sistem memanggil callback
onSearchRequested()
baru saat pengguna memulai penelusuran. Untuk menentukan apakah perangkat input pengguna memiliki mikrofon bawaan, ambil objekInputDevice
dari callback tersebut, lalu panggil metodehasMicrophone()
baru. - Metode
getDevices()
baru yang memungkinkan Anda mengambil daftar semua perangkat audio yang saat ini terhubung ke sistem. Anda juga dapat mendaftarkan objekAudioDeviceCallback
jika ingin agar sistem memberi tahu aplikasi saat perangkat audio terhubung atau terputus.
Fitur Video
Rilis ini menambahkan kemampuan baru pada API pemrosesan video, termasuk:
- Class
MediaSync
baru yang membantu aplikasi merender streaming audio dan video secara sinkron. Buffer audio dikirim dengan cara yang tidak memblokir dan ditampilkan melalui callback. Ini juga mendukung kecepatan pemutaran dinamis. - Peristiwa
EVENT_SESSION_RECLAIMED
baru, yang menunjukkan bahwa sesi yang dibuka oleh aplikasi telah diklaim kembali oleh pengelola resource. Jika aplikasi Anda menggunakan sesi DRM, Anda harus menangani peristiwa ini dan memastikan agar tidak menggunakan sesi yang diklaim kembali. - Kode error
ERROR_RECLAIMED
baru, yang menunjukkan bahwa pengelola resource telah mengklaim kembali resource media yang digunakan oleh codec. Dengan pengecualian ini, codec harus dilepaskan, karena telah dipindahkan ke status terminal. - Antarmuka
getMaxSupportedInstances()
baru untuk mendapatkan petunjuk tentang jumlah maksimum instance codec serentak yang didukung. - Metode
setPlaybackParams()
baru guna menetapkan kecepatan pemutaran media untuk pemutaran gerakan cepat atau lambat. Hal ini juga memperpanjang atau mempercepat pemutaran audio secara otomatis bersamaan dengan video.
Fitur Kamera
Rilis ini mencakup API baru berikut untuk mengakses senter kamera dan untuk memproses ulang gambar kamera:
Flashlight API
Jika perangkat kamera memiliki unit flash, Anda dapat memanggil metode
setTorchMode()
untuk mengaktifkan atau menonaktifkan mode senter unit flash tanpa membuka perangkat kamera. Aplikasi ini
tidak memiliki kepemilikan eksklusif untuk unit flash atau perangkat kamera. Mode flash akan
dinonaktifkan dan menjadi tidak tersedia setiap kali perangkat kamera menjadi tidak tersedia, atau saat resource kamera
lain membuat flash menjadi tidak tersedia. Aplikasi lain juga dapat memanggil
setTorchMode()
untuk menonaktifkan mode flash. Saat aplikasi terakhir yang mengaktifkan mode flash ditutup, mode flash akan dinonaktifkan.
Anda dapat mendaftarkan callback agar diberi tahu tentang status mode flash dengan memanggil
metode
registerTorchCallback()
. Saat pertama kali didaftarkan, callback langsung dipanggil dengan status mode flash
dari semua perangkat kamera yang saat ini diketahui memiliki unit flash. Jika mode flash berhasil diaktifkan atau
dinonaktifkan, metode
onTorchModeChanged()
akan dipanggil.
Reprocessing API
API Camera2
diperluas untuk mendukung pemrosesan ulang gambar
format buram pribadi dan YUV. Untuk menentukan apakah kemampuan pemrosesan ulang ini tersedia,
panggil getCameraCharacteristics()
dan periksa
kunci REPROCESS_MAX_CAPTURE_STALL
. Jika
perangkat mendukung pemrosesan ulang, Anda dapat membuat sesi pengambilan gambar kamera yang dapat diproses ulang dengan memanggil
createReprocessableCaptureSession()
,
dan membuat permintaan untuk pemrosesan ulang buffer input.
Gunakan class ImageWriter
untuk menghubungkan alur buffer input ke input pemrosesan ulang
kamera. Untuk mendapatkan buffer kosong, ikuti model pemrograman ini:
- Panggil metode
dequeueInputImage()
. - Isilah data ke dalam buffer masukan.
- Kirim buffer ke kamera dengan memanggil
metode
queueInputImage()
.
Jika Anda menggunakan objek ImageWriter
bersama dengan
gambar PRIVATE
, aplikasi Anda tidak dapat mengakses data
gambar secara langsung. Sebagai gantinya, teruskan gambar PRIVATE
langsung ke
ImageWriter
dengan memanggil
metode queueInputImage()
tanpa salinan buffer.
Class ImageReader
kini mendukung
aliran gambar berformat PRIVATE
. Dukungan ini memungkinkan aplikasi Anda
mempertahankan antrean gambar melingkar dari gambar output ImageReader
, memilih satu atau
beberapa gambar, lalu mengirimkannya ke ImageWriter
untuk diproses ulang oleh kamera.
Fitur Android for Work
Rilis ini menyertakan API baru berikut untuk Android for Work:
- Kontrol yang ditingkatkan untuk perangkat Milik Perusahaan dan Sekali Pakai: Pemilik Perangkat
kini dapat mengontrol setelan berikut untuk meningkatkan pengelolaan
perangkat Milik Perusahaan, Penggunaan Tunggal (COSU):
- Menonaktifkan atau mengaktifkan kembali keyguard dengan
metode
setKeyguardDisabled()
. - Menonaktifkan atau mengaktifkan kembali status bar (termasuk setelan cepat, notifikasi, dan
gestur geser navigasi ke atas yang meluncurkan Google Now) dengan
metode
setStatusBarDisabled()
. - Menonaktifkan atau mengaktifkan kembali booting aman dengan konstanta
UserManager
DISALLOW_SAFE_BOOT
. - Cegah layar nonaktif saat dicolokkan dengan
konstanta
STAY_ON_WHILE_PLUGGED_IN
.
- Menonaktifkan atau mengaktifkan kembali keyguard dengan
metode
- Menginstal dan meng-uninstal aplikasi secara diam-diam berdasarkan Pemilik Perangkat: Pemilik Perangkat kini dapat
menginstal dan meng-uninstal aplikasi secara otomatis menggunakan
PackageInstaller
API, tanpa bergantung pada Google Play for Work. Kini Anda dapat menyediakan perangkat melalui Pemilik Perangkat yang mengambil dan menginstal aplikasi tanpa interaksi pengguna. Fitur ini berguna untuk mengaktifkan penyediaan kios atau perangkat sejenis dengan sekali sentuh tanpa mengaktifkan Akun Google. - Akses sertifikat perusahaan secara diam-diam: Saat aplikasi memanggil
choosePrivateKeyAlias()
, sebelum pengguna diminta memilih sertifikat, Pemilik Profil atau Perangkat kini dapat memanggil metodeonChoosePrivateKeyAlias()
untuk memberikan alias secara diam-diam ke aplikasi yang meminta. Fitur ini memungkinkan Anda memberi aplikasi terkelola akses ke sertifikat tanpa interaksi pengguna. - Persetujuan otomatis update sistem. Dengan menyetel kebijakan update sistem menggunakan
setSystemUpdatePolicy()
, Pemilik Perangkat kini dapat menerima update sistem secara otomatis, misalnya untuk perangkat kios, atau menunda update dan mencegah update diambil oleh pengguna hingga 30 hari. Selain itu, administrator dapat menetapkan jangka waktu harian saat update harus dilakukan, misalnya selama jam-jam saat perangkat kios tidak digunakan. Saat update sistem tersedia, sistem akan memeriksa apakah aplikasi pengontrol kebijakan perangkat telah menetapkan kebijakan update sistem, dan berperilaku sebagaimana mestinya. -
Penginstalan sertifikat yang didelegasikan: Pemilik Profil atau Perangkat kini dapat memberi
aplikasi pihak ketiga kemampuan untuk memanggil API pengelolaan
sertifikat
DevicePolicyManager
ini: - Pelacakan penggunaan data. Pemilik Profil atau Perangkat kini dapat membuat kueri untuk
statistik penggunaan data yang terlihat di penggunaan Setelan > Data menggunakan
metode
NetworkStatsManager
baru. Pemilik Profil otomatis diberi izin untuk membuat kueri data di profil yang mereka kelola, sedangkan Pemilik Perangkat mendapatkan akses ke data penggunaan pengguna utama yang terkelola. - Pengelolaan izin runtime:
Pemilik Profil atau Perangkat dapat menyetel kebijakan izin untuk semua permintaan runtime dari semua aplikasi menggunakan
setPermissionPolicy()
, untuk meminta pengguna memberikan izin atau secara otomatis memberikan atau menolak izin secara otomatis. Jika kebijakan yang terakhir disetel, pengguna tidak dapat mengubah pilihan yang dibuat oleh Pemilik Profil atau Pemilik Perangkat dalam layar izin aplikasi di Settings. - VPN di Setelan: Aplikasi VPN kini dapat dilihat di Setelan > Lainnya > VPN. Selain itu, notifikasi yang menyertai penggunaan VPN kini khusus berisi konfigurasi VPN tersebut. Untuk Pemilik Profil, notifikasi khusus mengenai apakah VPN dikonfigurasi untuk profil terkelola, profil pribadi, atau keduanya. Untuk Pemilik Perangkat, notifikasi khusus mengenai apakah VPN dikonfigurasi untuk seluruh perangkat atau tidak.
- Notifikasi status kerja: Ikon koper status bar kini muncul setiap kali aplikasi dari profil terkelola memiliki aktivitas di latar depan. Selain itu, jika kunci perangkat dibuka langsung ke aktivitas aplikasi di profil terkelola, toast akan ditampilkan dengan memberi tahu pengguna bahwa mereka sedang berada dalam profil kerja.