为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】:

我知道这个问题已经有几个月了,但无论如何我都会回答。在对三星应用进行逆向工程后,我发现了“设置”按钮背后的秘密。

您只需将此元数据添加到您的应用小部件 (&lt;receiver&gt;):

<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中的小部件启用小部件设置按钮?的主要内容,如果未能解决你的问题,请参考以下文章

Android小部件:如何确定单击了哪个按钮?

将 onClickListener 设置为小部件中的按钮 [重复]

如何在android中正确设置一个大的小部件图标

Kivy 如何访问子小部件中的小部件

尝试为我的应用程序创建一个 Android 小部件按钮,该按钮打开一个 Java 活动,发送 URI 数据

单击android小部件按钮上的侦听器