Можно ли отображать виджет в диалоговом окне "Добавить на главный экран > Виджеты" только для определенной версии Android без загрузки двух APK и назначения правильных номеров версий SDK?
Можно ли отображать виджет только для определенной версии Android?
Ответ 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);