Показать диалог разрешений USB / BLUETOOH в режиме Android Kiosk - PullRequest
1 голос
/ 14 марта 2019

У меня есть приложение, которое находится в режиме киоска (закрепление экрана).Приложение использует 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 только для доступа к системным диалогам?

Спасибо!

...