嗯,首先,关于这个问题,SO上有很多重复,但那里发布的解决方案并不适用于我。
基本信息:
在AndroidManifest.xml
<receiver
android:name=".widgetProvider"
android:icon="@drawable/ic_launcher"
android:label="Home Automation">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_xml" />
</receiver>
将widgetProvider
课程添加到src/main/java/com.xxx.yyy.zzz
package com.xxx.yyy.zzz;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
public class widgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
// implementation will follow
}
}
将widget_layout.xml
添加到res/layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget"
android:layout_width="320dp"
android:layout_height="100dp"
android:background="@android:color/background_dark"
android:focusable="true">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="320dp"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:orientation="horizontal"
android:weightSum="2">
<Button
android:id="@+id/fan_widget"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="FAN"
android:textColor="@android:color/white"
android:textStyle="bold" />
<Button
android:id="@+id/light_widget"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="LIGHT"
android:textColor="@android:color/white"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
最后,我将widget_xml.xml
添加到res/xml
文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/widget_layout"
android:minHeight="72dp"
android:widgetCategory="home_screen"
android:minResizeHeight="10dp"
android:minResizeWidth="10dp"
android:minWidth="72dp"
android:resizeMode="none"
android:updatePeriodMillis="86400000" />
我还没有添加任何功能,因为我只是想查看布局,但出于某种原因,它并没有显示在小部件列表中。我的手机正在运行4.4.4,我正在编译4.4.2。无法弄清楚问题在这里。请帮忙。