如何将小部件和应用程序放在同一个apk中?

时间:2011-08-11 22:41:03

标签: android android-widget

我正在尝试将小部件和应用程序放在同一个apk中。

这是我的清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.me.mywidget"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
   <activity android:name=".settingsPage"
              android:label="@string/app_name"
              android:theme="@style/app_theme"
              >
        <intent-filter>
            <action android:name="com.me.mywidget.SETTINGSPAGE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>
    <receiver android:name="MyWidgetProvider" android:label="My Widgets">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
    <meta-data android:name="android.appwidget.provider"
        android:resource="@layout/widget_info" />
    </receiver>
    <service android:name=".UpdateWidgetService"></service>
    <activity android:name=".Test"></activity>
</application>

<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:minSdkVersion="7" />
</manifest>

如何在同一个apk中放置应用和市场?我尝试了这个,当它运行时,应用程序不会显示在应用程序抽屉中。

另外,当我添加android:name =“。mywidgets”时,我的小部件在运行时崩溃。

此外,我稍后会在窗口小部件中添加多个尺寸。

1 个答案:

答案 0 :(得分:3)

您需要将启动器的意图过滤器添加到要在启动器中显示的任何活动...

<category android:name="android.intent.category.LAUNCHER" />

因此,如果.Test是您的主要启动活动,您可以修改您的清单,如下所示。

    <activity android:name=".Test"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>