是否可以仅显示特定 Android 版本的小部件?

发布于 2024-11-30 03:51:06 字数 82 浏览 1 评论 0原文

是否可以仅在某个 Android 版本的“添加到主屏幕 > 小部件”对话框中显示小部件,而无需上传两个 APK 并分配给正确的 SDK 版本号?

is it possible to show widget in "Add to home screen > Widgets" Dialog only for a certain android version without uploading two APKs and assigning to proper SDK version numbers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最冷一天 2024-12-07 03:51:06

我有一种无需任何代码即可完成此操作的方法,例如:

在您的 res\values 目录中创建一个 bools.xml 文件:


<资源>
false;

创建一个values-v11目录(用于honeycomb或以上值),将文件复制到其中并将值设置为true。

然后在小部件接收器的清单中使用:android:enabled="@bool/honeycombOrAbove"。我还在小部件的配置活动中使用了它。

这意味着该小部件在安装时被禁用。

I have a way to do it without any code e.g.:

In your res\values dir create a bools.xml file:

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

Create a values-v11 dir (for honeycomb or above values), copy the file to it and set the value to true.

Then in the manifest for the widget receiver use: android:enabled="@bool/honeycombOrAbove". I also used it in the configuration activity for the widget.

This means the widget is disabled at install time.

无力看清 2024-12-07 03:51:06

您可以使用 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);

You can do it with the componentEnableSetting.
Just disable the widget you don't want to have listed.
The change will get active after phone-restart.

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文