Android 12 telah menambahkan kemampuan bagi admin IT untuk menonaktifkan pemberian sinyal data melalui USB di perangkat milik perusahaan (kecuali untuk fungsi pengisian daya). Untuk mendukung fungsi ini, OEM harus mengupdate HAL USB dan memanfaatkan dukungan tambahan untuk API Pengelola Kebijakan Perangkat.
Pengelola Kebijakan Perangkat
Untuk mendukung penonaktifan sinyal melalui USB, tiga API publik berikut disertakan dalam
DevicePolicyManager
:
setUsbDataSignalingEnabled(boolean enabled)
adalah API yang mengaktifkan atau menonaktifkan pemberian sinyal data USB dengan memanggilenableUsbDataSignal
API diUsbManager
.canUsbDataSignalingBeDisabled()
adalah API yang memeriksa apakah mengaktifkan atau menonaktifkan sinyal data USB didukung di perangkat.isUsbDataSignalingEnabled()
adalah API yang memeriksa apakah sinyal data USB telah diaktifkan.- Hal ini diperlukan untuk memeriksa apakah jendela dialog transparansi kebijakan ditampilkan atau tidak. Pengguna sistem dapat memanggil varian tersembunyi untuk API khusus ini yang dapat dipanggil oleh pengguna sistem untuk memeriksa apakah sinyal data USB telah diaktifkan untuk pengguna tertentu.
Contoh penerapan Pengelola Kebijakan Perangkat
Berikut adalah contoh cara menerapkan Pengelola Kebijakan Perangkat.class android.app.admin.DevicePolicyManager { /** * Called by device owner or profile owner of an organization-owned managed profile to * enable or disable USB data signaling for the device. When disabled, USB data connections * (except from charging functions) are prohibited. * * <p> This API is not supported on all devices, the caller should call * {@link #canUsbDataSignalingBeDisabled()} to check whether enabling or disabling USB data * signaling is supported on the device. * * @param enabled whether USB data signaling should be enabled or not. * @throws SecurityException if the caller is not a device owner or a profile owner on * an organization-owned managed profile. * @throws IllegalStateException if disabling USB data signaling is not supported or * if USB data signaling fails to be enabled/disabled. */ public void setUsbDataSignalingEnabled(boolean enabled);
/** * Called by device owner or profile owner of an organization-owned managed profile to return * whether USB data signaling is currently enabled by the admin. * * @return {@code true} if USB data signaling is enabled, {@code false} otherwise. */ public boolean isUsbDataSignalingEnabled();
/** * Called by the system to check whether USB data signaling is currently enabled for this user. * * @param userId which user to check for. * @return {@code true} if USB data signaling is enabled, {@code false} otherwise. * @hide */ public boolean isUsbDataSignalingEnabledForUser(@UserIdInt int userId);
/** * Returns whether enabling or disabling USB data signaling is supported on the device. * * @return {@code true} if the device supports enabling and disabling USB data signaling. */ public boolean canUsbDataSignalingBeDisabled();
Setelan
Pengguna dapat mengubah preferensi USB dan setelan tethering segera setelah USB terhubung. Untuk mengakses layar preferensi USB, lakukan hal berikut:
- Ketuk Setelan.
- Ketuk Perangkat terhubung.
- Ketuk USB.
Catatan: Jika USB tidak terhubung, preferensi USB tidak dapat diubah dan tidak akan muncul di jendela Perangkat terhubung.
Jika admin IT menonaktifkan sinyal data USB di perangkat milik perusahaan, pengguna tidak dapat mengubah preferensi USB. Sebagai gantinya, semua preferensi USB di Settings dinonaktifkan sepenuhnya sehingga akan membuat jendela dialog transparansi kebijakan.
Catatan: Jika sinyal data USB dinonaktifkan, proses debug USB, konfigurasi USB default, dan preferensi pemilihan rute audio USB akan dinonaktifkan di opsi developer.