为Android中的小部件启用小部件设置按钮?
Posted
技术标签:
【中文标题】为Android中的小部件启用小部件设置按钮?【英文标题】:Enable Widget Setting button for widgets in Android? 【发布时间】:2020-02-22 18:30:14 【问题描述】:当我选择小部件时,三星 One UI 主屏幕会显示一些小部件的设置按钮,
但对某些人来说不是
想知道两者之间有什么区别,或者它只是一个 OEM 特定功能,因为我根本无法在 POCO 启动器或模拟器的启动器中使用菜单。
请注意我已经在使用
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure=".WidgetConfigurationActivity"
...
在我的提供者和我的清单中
<receiver ...>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
...
然而这些只是我在添加小部件时添加的配置,而不是在添加小部件之后,并且在搜索网络时找不到答案。
【问题讨论】:
【参考方案1】:我知道这个问题已经有几个月了,但无论如何我都会回答。在对三星应用进行逆向工程后,我发现了“设置”按钮背后的秘密。
您只需将此元数据添加到您的应用小部件 (<receiver>
):
<meta-data android:name="android.appwidget.provider.semConfigureActivity" android:value="com.example.MySettingsActivity" />
完整示例:
<receiver android:name="com.example.MyWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_info"/>
<!-- The secret sauce is here -->
<meta-data android:name="android.appwidget.provider.semConfigureActivity" android:value="com.example.MySettings"/>
</receiver>
建议:建议学习逆向工程来实现未记录的功能(只要确保您的应用的核心功能不依赖于未记录的 API)。
【讨论】:
哇,刚刚测试并添加到应用程序github.com/persian-calendar/DroidPersianCalendar/commit/…,太酷了!谢谢!!! @EbrahimByagowi 没问题,我建议学习逆向工程,这是一项有用的技能。【参考方案2】:另外补充一点,在 Android 12 中,这最终标准化并提供了android:widgetFeatures="reconfigurable"
或 (reconfigurable|configuration_optional
),有关 Android 12 的更多信息,请参阅https://developer.android.com/guide/topics/appwidgets/configuration#use-default。
还可能值得注意的是,显然reconfigurable
已为某些版本定义,只是在此版本中声明它为官方支持。
【讨论】:
以上是关于为Android中的小部件启用小部件设置按钮?的主要内容,如果未能解决你的问题,请参考以下文章
将 onClickListener 设置为小部件中的按钮 [重复]