( Edit: Diperbarui setelah beberapa pengujian lagi)
Periksa dokumentasi terbaru .
Fitur ini tampaknya disebut Screen pinning now, dan App tidak harus menjadi pemilik perangkat. Jika pemilik perangkat tidak disetel, pengguna akan diminta untuk menerima. Tetapi ada masalah dengan ini untuk penggunaan kios, yang disebutkan di bawah ini.
Ada dua cara untuk mengaktifkan penyematan layar:
Secara manual: Pengguna dapat mengaktifkan penyematan layar di Pengaturan> Keamanan> Penyematan Layar, dan memilih tugas yang ingin disematkan dengan menyentuh ikon pin hijau di layar terbaru. Secara terprogram: Untuk mengaktifkan pinning layar secara terprogram, panggil startLockTask () dari aplikasi Anda. Jika aplikasi yang meminta bukan pemilik perangkat, pengguna diminta untuk konfirmasi. Aplikasi pemilik perangkat dapat memanggil metode setLockTaskPackages () untuk memungkinkan aplikasi dapat di-pinnable tanpa langkah konfirmasi pengguna.
Jika Anda mengaktifkan pinning layar secara terprogram (bukan App pemilik perangkat) atau pada perangkat menggunakan pin di recents Anda mendapatkan perilaku berikut:
Sebuah dialog muncul menanyakan pengguna apakah mereka ingin mengaktifkan penyematan layar dan apakah mereka ingin meminta kata sandi untuk keluar. Jika mereka menekan ya bilah status dan pemberitahuan menghilang, kembali, tombol home dan baru-baru ini TIDAK hilang. Mengetuk di rumah atau baru-baru ini membuat bersulang muncul menginformasikan pengguna bagaimana keluar dari menyematkan layar.
Pengguna kemudian dapat menahan dan mundur untuk keluar dari menyematkan layar. Jika pengguna memilih untuk meminta kata sandi, mereka akan ditendang langsung ke layar kunci. Perilaku ini berarti tidak cocok untuk imo kios. Karena terlalu mudah bagi pengguna kios untuk melihat layar kunci.
Untuk mendapatkan mode kios yang tepat, kita perlu mengatur pemilik perangkat. Dokumentasi Google mengatakan Anda perlu melakukan ini dengan NFC:
Untuk menggunakan dan mengaktifkan pemilik perangkat, Anda harus melakukan transfer data NFC dari aplikasi pemrograman ke perangkat saat perangkat dalam kondisi yang tidak disediakan.
Menggunakan NFC untuk melakukan ini tampaknya agak rumit (bagaimana jika perangkat tidak memiliki NFC?). Saya belum menyelidiki ini jadi apakah ada yang bisa memberikan info bagaimana Anda mengatur pemilik perangkat dengan NFC? Yang sekarang menjadi poin utama dari pertanyaan Anda. (yaitu mengatur pemilik perangkat pada perangkat yang tidak di-rooting)
Tetapi untuk mengonfirmasi perilaku seperti yang diharapkan jika Anda melakukan root pada perangkat Anda dapat mengatur pemilik perangkat sesuai instruksi Google sebelumnya (menambahkan device_owner.xml) seperti yang saya sebutkan di sini
Sekarang Anda dapat mengunci Aplikasi dengan benar, tidak ada dialog yang muncul bagi pengguna untuk menerima, ketika diaktifkan, tombol baru-baru ini dan rumah menghilang dan pengguna tidak dapat meninggalkan Aplikasi kecuali Aplikasi Anda membuka kunci sendiri. Mode kios yang tepat. Saya telah menguji ini pada Nexus 7 2013 dengan build Lollipop terbaru.
Cuplikan berikut menyalakan kunci:
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(this, DeviceAdminSample.class);
if (mDPM.isDeviceOwnerApp(this.getPackageName())) {
Log.d(TAG, "isDeviceOwnerApp: YES");
String[] packages = {this.getPackageName()};
mDPM.setLockTaskPackages(mDeviceAdminSample, packages);
} else {
Log.d(TAG, "isDeviceOwnerApp: NO");
}
if (mDPM.isLockTaskPermitted(this.getPackageName())) {
Log.d(TAG, "isLockTaskPermitted: ALLOWED");
startLockTask();
} else {
Log.d(TAG, "isLockTaskPermitted: NOT ALLOWED");
}