gpt4 book ai didi

android - 根据 API 级别隐藏应用小部件

转载 作者:可可西里 更新时间:2023-11-01 18:56:12 27 4
gpt4 key购买 nike

我为 Honecomb 之前的 Android 版本创建了三个不同大小的应用程序小部件,并为 Honeycomb 及更高版本创建了一个可调整大小的可滚动 ListView 小部件。

由于这些小部件提供相同的功能,并且针对 Honeycomb 及更高版本的小部件是可调整大小的,因此我想在 API 级别 12 或更高版本上删除该小部件的其他版本。这有可能吗?

据我所知,如果小部件可以找到 AppWidgetProviderInfo 资源文件,似乎没有任何方法可以禁止小部件被 AppWidgetService 注册。因此,我似乎只能在更高版本中包含小部件,但不能排除在针对早期 API 版本的 xml 文件夹中定义的版本。

最佳答案

OP 已经得到了他的解决方案,但对于我们其他人来说,我们可以利用 xml 中的 bool 值并在不同的资源目录中设置不同的值。

所以你的 AndroidManifest 看起来像这样:

<receiver
android:label="@string/app_widget_small"
android:enabled="@bool/is_pre_api_11">

<!-- App Widget Stuff Here -->

</receiver>
<receiver
android:label="@string/app_widget_large"
android:enabled="@bool/is_pre_api_11">

<!-- App Widget Stuff Here -->

</receiver>
<receiver
android:label="@string/app_widget_resizeable"
android:enabled="@bool/is_post_api_11">

<!-- App Widget Stuff Here -->

</receiver>

/res/values/attrs.xml 中:

<resources>
<bool name="is_pre_api_11">true</bool>
<bool name="is_post_api_11">false</bool>
</resources>

然后在 /res/values-v11/attrs.xml 中:

<resources>
<bool name="is_pre_api_11">false</bool>
<bool name="is_post_api_11">true</bool>
</resources>

现在,您的 API 10 及更低版本将拥有两个应用小部件(小型和大型),而 API 11 及更高版本将拥有一个可调整大小的应用小部件。

关于android - 根据 API 级别隐藏应用小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9680449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com