La raison en est en fait décrite here et il est à la conception à partir d'Android 3.1. Par défaut, installLocation sera déjà défini sur "internalOnly", ce qui ne devrait pas résoudre le problème et ne devrait pas non plus être réinitialisé. Pour contourner ce problème, une activité doit être déclenchée dans votre widget. Cela l'activera et apparaîtra dans la liste des widgets.
Pour ce faire, vous pouvez ajouter une activité qui fait essentiellement rien comme ceci:
1) Dans votre AndroidManifest.xml, ajoutez dans votre balise "application":
<activity
android:name=".DummyActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2) ensuite, créez une classe « DummyActivity.java » dans votre « src » comme ceci:
package com.domain.app;
import android.app.Activity;
import android.os.Bundle;
public class DummyActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
finish();
}
}
maintenant, lorsque vous déployez le widget sur votre appareil, cette activité sera lancée automatiquement (vous me voyez un ssage dans votre console Eclipse en disant "start activity ...") et il "terminera" immédiatement sans rien afficher de visuel sur l'appareil. Et maintenant votre widget sera listé dans la liste des widgets!
Qu'avez-vous défini comme installLocation dans le manifeste? – EboMike
Je ne l'avais pas réglé, mais après quelques recherches, j'ai ajouté internalOnlt. Même résultat :( – FloatingCoder
(je voulais dire internalOnly) – FloatingCoder