是否可以在“添加到主屏幕>窗口小部件”对话框中仅显示特定的Android版本,而无需上传两个APK并分配到正确的SDK版本号?
答案 0 :(得分:32)
我有办法在没有任何代码的情况下这样做:
在res \ values中,dir创建一个bools.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="honeycombOrAbove">false</bool>
</resources>
创建一个值-v11目录(对于蜂窝或以上值),将文件复制到它并将值设置为true。
然后在小部件接收器的清单中使用:android:enabled =“@ bool / honeycombOrAbove”。我还在小部件的配置活动中使用它。
这意味着在安装时禁用小部件。
答案 1 :(得分:9)
您可以使用componentEnableSetting执行此操作。 只需禁用您不想列出的小部件。 电话重启后,更改将生效。
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);