是否可以仅针对某个 android 版本在“添加到主屏幕 > 小部件”对话框中显示小部件,而无需上传两个 APK 并分配给正确的 SDK 版本号?
问问题
1878 次
2 回答
32
我有一种无需任何代码即可完成的方法,例如:
在您的 res\values 目录中创建一个 bools.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="honeycombOrAbove">false</bool>
</resources>
创建一个 values-v11 目录(用于蜂窝或以上值),将文件复制到其中并将值设置为 true。
然后在小部件接收器的清单中使用:android:enabled="@bool/honeycombOrAbove"。我还在小部件的配置活动中使用了它。
这意味着该小部件在安装时被禁用。
于 2011-08-31T19:43:06.773 回答
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);
于 2011-08-15T11:44:57.380 回答