é possível mostrar o widget na caixa de diálogo "Adicionar à tela inicial> Widgets" apenas para uma determinada versão do Android sem fazer upload de dois APKs e atribuir os números de versão adequados do SDK?
Respostas:
31 para resposta № 1Eu tenho uma maneira de fazer isso sem nenhum código, por exemplo:
No diretório resvalues, crie um arquivo bools.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="honeycombOrAbove">false</bool>
</resources>
Crie um diretório values-v11 (para valores de favo de mel ou acima), copie o arquivo para ele e defina o valor como true.
Em seguida, no manifesto para o receptor do widget, use: android: enabled = "@ bool / honeycombOrAbove". Eu também o usei na atividade de configuração do widget.
Isso significa que o widget está desativado no momento da instalação.
9 para resposta № 2
Você pode fazer isso com o componentEnableSetting. Apenas desative o widget que você não deseja listar. A alteração será ativada após a reinicialização do telefone.
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);