Android: виджеты не отображаются в панели приложений ICS - PullRequest
5 голосов
/ 10 февраля 2012

У меня есть два виджета, и ни один из них не появится в ящике приложения.Странно то, что если я удалю один из манифестов, он тоже не появится, но я не вижу, что я делаю неправильно.Из всех других вопросов, которые я искал, это выглядит правильно.Приложение не устанавливается на SD-карту.

У кого-нибудь есть идеи?

AndroidManifest.xml

<receiver
        android:name=".appwidgets.WidgetLarge"
        android:label="@string/Widget_large"
        android:icon="@drawable/icon" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.groggs.action.CACHE_UPDATE_FINISHED" />
        </intent-filter>
        <intent-filter>
            <action android:name="WIDGET_UPDATE" />
            <data android:scheme="content" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_large_info" />
    </receiver>

    <receiver
        android:name=".appwidgets.WidgetSmall"
        android:label="@string/Widget_small"
        android:icon="@drawable/icon" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.groggs.action.CACHE_UPDATE_FINISHED" />
        </intent-filter>
        <intent-filter>
            <action android:name="WIDGET_UPDATE" />

            <data android:scheme="content" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_small_info" />
    </receiver>

widget_large_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:maxWidth="450dp"
    android:maxHeight="352dp" 
    android:updatePeriodMillis="0"
    android:initialLayout="@layout/widget_layout_large"
    android:configure="com.groggs.appwidgets.config.HubQuickViewWidgetConfig" >
</appwidget-provider>

widget_small_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:maxWidth="450dp"
    android:maxHeight="82dp" 
    android:updatePeriodMillis="0"
    android:initialLayout="@layout/widget_layout_small"
    android:configure="com.groggs.appwidgets.config.HubQuickViewWidgetConfig" >
</appwidget-provider>

Ответы [ 2 ]

4 голосов
/ 01 июня 2012

Добавьте атрибуты "minHeight" и "minWidth" в свои элементы appwidget-provider для каждого из ваших appwidget и посмотрите, подходит ли вам этот прием.

Если вы проверяете logcat при запуске его в эмуляторе, вы должны заметить, что программа запуска выводит сообщение о недопустимых измерениях, и имя вашего виджета будет прикреплено к этой строке.

У меня только что была эта проблема, и вот как я ее решил (хотя у меня была одна минута и максимальная при аварии). В сообщении logcat сказано, что у меня размер (108, 0). Это заставило меня взглянуть на все мои измерения, так как оно кричало на меня, когда рост был 0.

Это был мой пост: Виджет приложения не отображается в панели приложений ICS

2 голосов
/ 03 мая 2012

Если ваше приложение представляет собой только приложение-виджет, без каких-либо действий, кроме конфигурации, вам нужно фиктивное основное действие, чтобы приложение появилось в ящике.

См. Исходную проблему в коде Google: http://code.google.com/p/android/issues/detail?id=24208, этот ответ: Android 4.0: виджеты не отображаются? , а также эта интересная тема в группе разработчиков Google Android: https://groups.google.com/forum/?fromgroups#!topic/android-developers/bvlk3EOV6Xk (речь идет о Honeycomb, но относится к версиям Android 3.xи выше)

...