Подтвердить что ты не робот

Можно ли отображать виджет только для определенной версии Android?

Можно ли отображать виджет в диалоговом окне "Добавить на главный экран > Виджеты" только для определенной версии Android без загрузки двух APK и назначения правильных номеров версий SDK?

4b9b3361

Ответ 1

У меня есть способ сделать это без какого-либо кода, например:

В ваших res\values ​​dir создайте файл bools.xml:

<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="honeycombOrAbove">false</bool> </resources>

Создайте dV-значения values-v11 (для сотовых или выше значений), скопируйте файл в него и установите для значения значение true.

Затем в манифесте для приемника виджетов используйте: android: enabled = "@bool/honeycombOrAbove". Я также использовал его в настройках для виджета.

Это означает, что виджет отключен во время установки.

Ответ 2

Вы можете сделать это с помощью компонентаEnableSetting. Просто отключите виджет, который вы не хотите перечислять. Это изменение активируется после перезагрузки телефона.

Context context = getApplicationContext();
String str1 = "org.classname.to.widget.provider";
ComponentName componentName = new ComponentName(context, str1);
PackageManager packageManager = getPackageManager();

int versioncode = Integer.valueOf(android.os.Build.VERSION.SDK);    

//enable widget
packageManager.setComponentEnabledSetting(componentName, 1, 1);

//disable widget
packageManager.setComponentEnabledSetting(componentName, 2, 1);