Не удается найти getContext () в соответствии с документацией по выделенному устройству Android - PullRequest
0 голосов
/ 20 декабря 2018

Я знаю, что подобный вопрос задавался несколько раз прежде, но я прошел через них, и они мне не помогают.Я пытаюсь настроить Samsung Tab A (Android 8.1) как одноразовое устройство.Я уже написал приложение, которое работает отлично, но, поскольку устройство будет использоваться публикой, мне нужно заблокировать его в режиме киоска.Я пытаюсь следовать руководству разработчика по ссылке ниже, но сразу сталкиваюсь с проблемами.
https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode

Итак, первое, что я пытаюсь сделать, это добавить приложение в белый список согласно приведенному примеру:

// Whitelist two apps.
private static final String KIOSK_PACKAGE = "com.example.kiosk";
private static final String PLAYER_PACKAGE = "com.example.player";
private static final String[] APP_PACKAGES = {KIOSK_PACKAGE, PLAYER_PACKAGE};

// ...

Context context = getContext();
DevicePolicyManager dpm =
    (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName adminName = getComponentName(context);
dpm.setLockTaskPackages(adminName, APP_PACKAGES);

В документации неясно, куда должен идти этот код, но я поместил его в переопределение для onResume().

Я использую автоимпорт в Android Studio, но он говорит мне, что getContext() не может быть найден.Я попытался изменить на getApplicationContext() и просто использовать this, как предложено в другом месте, но затем он жалуется, что getComponentName() не должно иметь никаких параметров.Я попытался просто удалить параметр контекста, используя context.getComponentName(), а также не используя переменные контекста.Они компилируются, но приложение вылетает на устройстве (на setLockTaskPackages()).

Я подозреваю, что ключ в том, чтобы выяснить, почему getContext() не может быть найден, а затем, надеюсь, все остальное встает на свои места.Есть идеи, чего не хватает?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

getContext() используется во фрагменте для получения контекста. Если это Activity, вы можете использовать Yourclass.this или this.Также вы можете узнать, что вы можете использовать для контекста, используя this

0 голосов
/ 20 декабря 2018

Если вы используете активность, используйте ключевое слово this вместо getContext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...