/ / Android: les widgets n'apparaissent pas dans le tiroir d'applications ICS - Android, Android-widget, homescreen

Android: Widgets n'apparaissant pas dans le tiroir d'applications ICS - Android, android-widget, homescreen

J'ai deux widgets et aucun d'eux ne montreradans le tiroir de l'application. Ce qui est étrange, c’est que si je supprime un élément du manifeste, il ne sera pas affiché non plus, mais je ne peux pas voir ce que je fais de mal. Toutes les autres questions que j’ai posées ont l’air correcte. L’application n’est pas installée sur la carte SD.

Quelqu'un a des idées?

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>

Réponses:

2 pour la réponse № 1

Si votre application est uniquement un appwidget, sans activités autres qu'une configuration, vous avez besoin d'une activité principale fictive pour que votre appwidget apparaisse dans le tiroir.

Voir le numéro d'origine dans Google Code: http://code.google.com/p/android/issues/detail?id=24208, cette réponse: Android 4.0: les widgets n'apparaissent pas? et aussi ce fil intéressant dans Android Devs Google Group: https://groups.google.com/forum/?fromgroups#!topic/android-developers/bvlk3EOV6Xk (il s’agit de Honeycomb, mais s’applique aux versions Android 3.x et supérieures)


4 pour la réponse № 2

Ajoutez les attributs "minHeight" et "minWidth" aux éléments de fournisseur d'appwidget pour chacun de vos appwidgets et voyez si cela vous convient.

Si vous vérifiez logcat lorsque vous l'exécutez dans l'émulateur, vous remarquerez que le programme de lancement envoie un message sur les dimensions non valides et que le nom de votre widget sera associé à cette ligne.

Je viens d'avoir ce problème et voici comment je l'ai résolu(bien que j'aie eu une minute et au maximum fourni par accident). Le message logcat disait que j'avais une dimension de (108, 0). Cela m’a amené à examiner toutes mes dimensions car il me criait que la hauteur était de 0.

C'était mon post: Le widget d'application ne s'affiche pas dans le tiroir d'applications ICS