经常看到一些教程教你如何写appwidget,但是,你知道你的appwidget是如何被添加到桌面上的吗? 一般的,如果是做桌面的童鞋,基本上都会让自己的桌面支持appwidget。...= 1; private static final int REQUEST_CREATE_APPWIDGET = 2; private static final int APPWIDGET_HOST_ID...); if (appWidget.configure !...必须调用AppWidgetHost的startListening方法来监听appwidget的状态变化,否则添加上去的appwidget不会更新的。 2。...需要override一个onActivityResult方法,来接收添加appwidget和appwidget的配置activity的返回值。 3。
= null) { mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID...* 3, 在第2点中的xml文件中描述布局属性的节点名称必须为“appwidget-provider”。..." <intent-filter <action android:name="android.<em>appwidget</em>.action.<em>APPWIDGET</em>_CONFIGURE" / </intent-filter...<meta-data android:name="android.<em>appwidget</em>.provider" android:resource="@xml/<em>appwidget</em>_provider" / <intent-filter...<action android:name="android.<em>appwidget</em>.action.<em>APPWIDGET</em>_UPDATE" / </intent-filter </receiver ExampleBroadcastReceiver
那么接下来说说AppWidget。...AppWidget系统框架 ? ? AppWidget实现Remote端提供UI元素,Local端具体显示。...AppWidget简要分析 AppWidgetHost ?...另外,这个Receiver的meta-data的name指定为“android.appwidget.provider”;resource中用xml定义appwidget-provider内的各种属性。...通常,对于应用开发来说不太注重AppWidget其他的部分,只是写AppWidgetProvider,但一般也都称AppWidgetProvider为AppWidget开发。
onEnabled():当接收到ACTION_APPWIDGET_ENABLED Broadcast时回调该方法。...onDisabled():当接收到ACTION_APPWIDGET_DISABLED Broadcast时回调该方法。...android:name=".LedClockWidget"> <action android:name="android.<em>appwidget</em>.action.<em>APPWIDGET</em>_UPDATE..." android:resource="@xml/<em>appwidget</em>_provider"/> 配置文件中指定该桌面控件使用@xml/appwidget_provider...label="@string/app_name"> <action android:name="android.<em>appwidget</em>.action.<em>APPWIDGET</em>_UPDATE
Widget布局,Widget配置,AppWidgetProvider与Configuration Activity Android Widget xml布局类型:AppWidget Provider...<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" //引用的布局文件 android:...Widget使用 AndroidManifest中声明AppWidget xml中定义AppWidget配置文件 layout中定义Widget布局文件 创建类继承AppWidgetProvider类...appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); } //清单文件 <meta-data android:name="android.<em>appwidget</em>.provider"
" parent="Theme.AppWidget.AppWidgetContainerParent"> values/styles.xml <style name="Widget.<em>AppWidget</em>.<em>AppWidget</em>.Container...layout/widget_grocery_list.xml <LinearLayout style="@style/Widget.AppWidget.AppWidget.Container">...<TextView style="@style/Widget.<em>AppWidget</em>.Checkbox" android:layout_width="match_parent" android...您可以将新的布局设置为 appwidget-provider 的 previewLayout 属性。 描述 您也可以设置 description 属性作为描述信息显示在微件选择器上。
为AppWidget提供一个文件定义小控件的基本配置信息 在资源文件夹res目录下新建xml文件夹,添加app_widget_provider_info.xml文件内容为: <?...--android:resizeMode="horizontal|vertical"-- <appwidget-provider xmlns:android="http://schemas.android.com...action_led_on" / <action android:name="action_led_off" / <action android:name="android.<em>appwidget</em>.action.<em>APPWIDGET</em>_UPDATE..." / </intent-filter <meta-data android:name="android.<em>appwidget</em>.provider"...使用PendingIntent和RemoteViews对AppWidget绑定监听器,使用RemoteViews在MyAppWidgetProvider的onUpdate()方法中为Botton绑定监听器
<receiver android:name=".<em>AppWidget</em>" android:label="@string/app_name" android:icon="@drawable.../icon"> <meta-data android:name="android.<em>appwidget</em>.provider...receiver> 这段代码中:注册的是一个Widget,其中第二行是widget的标题,第三行是它的图标, <action android:name="android.appwidget.action.APPWIDGET_UPDATE...,过滤widget的更新action,第三行在上面解释过了,这里的更新actiong是放在隐式intent里面的,所以要加上第三行 <meta-data android:name="android.<em>appwidget</em>.provider
QtWidgets import * from PyQt5.QtCore import * from PyQt5 import QtCore from PyQt5.QtGui import * class AppWidget...(QWidget): def init(self, parent=None): super(AppWidget, self).init(parent) self.setWindowTitle("界面风格例子...style): QApplication.setStyle(style) if name == "main": app = QApplication(sys.argv) widgetApp = AppWidget
内容如下: <meta-data android:name="android.<em>appwidget</em>.provider" android:resource="@xml.../example_<em>appwidget</em>_info" />//这里使用到了一个xml文件,所以要创建这个文件 在res下面新建一个名为xml的文件件,然后新建example_appwidget_info.xml...> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="294dp...:previewImage="@drawable/preview"//指定小控件的图标,如果不要这个选项就是程序的图标 android:initialLayout="@layout/example_appwidget
要使用这一功能,您需在 appwidget-provider 中把 widgetFeatures 属性设置为 reconfigurable。...xml/app_widget_info_checkbox_list.xml <appwidget-provider android:configure="com.example.android.appwidget.ListWidgetConfigureActivity...xml/app_widget_info_checkbox_list.xml <appwidget-provider android:configure="com.example.android.appwidget.ListWidgetConfigureActivity...由于我们把配置活动添加至 appwidget-provider 的 configure 属性中,用户长按 widget 并点击编辑/重新设置按钮时,配置就会生效。...xml/app_widget_info_checkbox_list.xml <appwidget-provider android:maxResizeWidth="240dp" android
但是从 Android 推出至今,AppWidget 的 API 基本就没有什么大的变化,从 2012 年到 2021 年更是只有一个 Android 版本包含了对 AppWidget API 的更新。...API Android 12 的推出带来了很多关于 AppWidget API 的更新,本文不会对所有的 API 一一介绍,而是重点介绍几个对 Widget 构建非常有用的 API。...<appwidget-provider android:description= "@string/app_widget_weather_description" android...Glance 是由 Compose Runtime 提供支持的 API,通过它就可以使用 Compose 风格的语法来创建 AppWidget,这也意味着您可以通过 Glance 以 composable...在定义内容时,不再使用 XML 语法,而是使用 Compose 语法,要显示的内容将会被转换为远端视图展示在 AppWidget 中。
appwidget-provider配置文件 这个xml文件虽然简单,但还是有些有意思的东西的。...应用内主动更新Widget 前面我们提到了,当App活着的时候,可以主动来更新Widget,而且有两种方式可以实现,一种是通过广播ACTION_APPWIDGET_UPDATE,触发Widget的update...) val minHeight = options.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT) val rows: Int...it.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, intArrayOf(appWidgetId)) } val pendingUpdate =...getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS) if (allWidgetIds !
> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout...AndroidManifest.xml文件中声明小部件 下面的示例中包含了两个action,第一个action用于识别小部件的单击行为,而第二个action是作为小部件必须存在的action android.appwidget.action.APPWIDGET_UPDATE... <meta-data android:name="android.<em>appwidget</em>.provider..." android:resource="@xml/<em>appwidget</em>_provider_info" > ... <action android:name="android.<em>appwidget</em>.action.<em>APPWIDGET</em>_UPDATE
允许应用进入帐户认证 AUTHENTICATE_ACCOUNTS 允许应用为ACCOUNT_MANAGER扮演一个帐户认证系统 BATTERY_STATS 允许应用去统计电源信息 BIND_APPWIDGET... 允许应用告诉AppWidget哪个应用能够访问该AppWidget的数据 BIND_DEVICE_ADMIN 必须通过关机接收者的请求来确保只有系统能够与之交互 BIND_INPUT_METHOD
name="android.intent.action.INCIDENT_REPORT_READY" /> <protected-broadcast
3.4 触达方式四:桌面小组件 AppWidget 又称小部件、小插件或微件。...1.创建AppWidget 总的来说分以下几个部分: ①定义AppWidgetProvider 创建一个AppWidgetProvider子类,并创建对应的AppWidgetProviderInfo 配置文件...example_appwidget_info.xml,并在manifest声明。...③绘制widget的布局 AppWidget可以支持的布局如下(由于其底层是基于RemoteViews实现,支持的视图较少):FrameLayout、LinearLayout、RelativeLayout...要在appWidget中添加集合视图,您必须实现 RemoteViewsService 和 RemoteViewsFactory。
> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout...android:previewImage="@drawable/rect_yellow" android:updatePeriodMillis="86400000" > <meta-data android:name="android.<em>appwidget</em>.provider... <action android:name="android.appwidget.action.APPWIDGET_UPDATE
比如在短信息的应用图标的右上角加上未读短信数目等,答案是有的,不过是迂回实现的,给个思路就是使用AppWidget,这个可以实现,还能动态更新,具体怎么实现,大家可以自己摸索下,这里只提供个思路,整体和这节的例子差不多...,只不过呢,要做成AppWidget。。。
领取专属 10元无门槛券
手把手带您无忧上云