Как убрать виджет только для Oreo и выше? - PullRequest
0 голосов
/ 08 июня 2018

Я вижу, что управление виджетами изменилось в Android (использование нового JobScheduler).

Я больше не хочу предлагать свой виджет на Android 8 и выше, но все же хочу предложить его на более низкихверсии.

Как я могу это сделать?

Спасибо.

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете сделать это, отключив компонент виджета.Но он все еще будет доступен в списке виджетов программы запуска при первой установке, но будет удален из этого списка, как только вы отключите его программно.Один из способов - отключить его в приложении onCreate () или что-то в этом роде.

Итак, все, что вам нужно:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   PackageManager pm  = getApplicationContext().getPackageManager();
   ComponentName componentName = new ComponentName("com.app",".widget.myCoolWidget");
   pm.setComponentEnabledSetting(componentName,
       PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
       PackageManager.DONT_KILL_APP);
}
...