У меня есть приложение, которое находится в режиме киоска (закрепление экрана).Приложение использует USB и Bluetooth для подключения к периферийным устройствам.Каждый раз, когда я подключаю USB, мне нужно предоставлять разрешения, устройствам Bluetooth нужны пин-коды, но системные диалоги блокируются.
Код блокировки
public static final String [] APP_PACKAGES = {"com.example.app"};
ComponentName componentName = new ComponentName(activity, ApplicationAdmin.class);
assert devicePolicyManager != null;
if(devicePolicyManager.isAdminActive(componentName))
{
Log.d("LockTask", "Is admin");
devicePolicyManager.setLockTaskPackages(componentName, APP_PACKAGES);
if (devicePolicyManager.isLockTaskPermitted(context.getPackageName()))
{
Log.d("LockTask", "start locking");
activity.startLockTask();
}
else
{
Log.d("LockTask", "isLockTaskPermitted is false!!!");
}
}
Администратор устройства xml
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
Это работает для USB, если я добавлю «com.android.systemui» в APP_PACKAGES, но затем пользователь сможет выйти из приложения, нажав и удерживая кнопку «home».
Для Bluetooth вышеупомянутое решение не работает.
Есть ли способ ограничить использование пакета bluetooth / usb только для доступа к системным диалогам?
Спасибо!