2010-07-22 12 views
2

Dans mon application Android, je crée des raccourcis par code pour certaines activités de mon application. Je fais cette fonctionnalité en utilisant l'émission:Ajout de son application à la section "Ajouter à l'écran d'accueil"/"Raccourci"

intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    sendBroadcast(intent); 

et c'est cool, ça marche vraiment!

Maintenant, je voudrais faire quelque chose de différent: je l'ai vu que certaines actions peuvent « enregistrer » quelque part à ajouter dans le menu Android, lorsque vous appuyez longtemps sur la maison comme celui-ci:

http://www.androidtapp.com/wp-content/uploads/2010/02/UltimateFaves-Add-Home-Screen-Shortcut.jpg

Donc ma question principale est la suivante:

Comment est-ce possible de s'enregistrer pour ce menu. Je suppose qu'il y a une ligne à ajouter dans le manifeste, mais je ne vois pas où faire ça!

Merci beaucoup pour toute aide!

BTW, il ya une question secondaire: une fois que j'aurai réussi à faire cela, puis-je ajouter un nombre différent de raccourcis dans mon menu (imaginez que je voudrais faire cela pour un client twitter multi-compte, je le ferais J'aime voir un différent pour chaque compte Twitter dans cette liste.) Ainsi, le nombre de raccourcis est programmatique.

Répondre

8

Je viens de trouver ma réponse dans les échantillons du SDK:

<!-- This section of sample code shows how your application can add shortcuts to --> 
    <!-- the launcher (home screen). Shortcuts have a three step life cycle. --> 

    <!-- 1. Your application offers to provide shortcuts to the launcher. When --> 
    <!--  the user installs a shortcut, an activity within your application --> 
    <!--  generates the actual shortcut and returns it to the launcher, where it --> 
    <!--  is shown to the user as an icon. --> 

    <!-- 2. Any time the user clicks on an installed shortcut, an intent is sent. --> 
    <!--  Typically this would then be handled as necessary by an activity within --> 
    <!--  your application. --> 

    <!-- 3. The shortcut is deleted. There is no notification to your application. --> 

    <!-- In order provide shortcuts from your application, you provide three things: --> 

    <!-- 1. An intent-filter declaring your ability to provide shortcuts --> 
    <!-- 2. Code within the activity to provide the shortcuts as requested --> 
    <!-- 3. Code elsewhere within your activity, if appropriate, to receive --> 
    <!--  intents from the shortcut itself. --> 

    <activity android:name=".LauncherShortcuts" 
       android:label="launchers"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.SAMPLE_CODE" /> 
     </intent-filter> 

    </activity> 

    <!-- It is recommended that you use an activity-alias to provide the "CREATE_SHORTCUT" --> 
    <!-- intent-filter. This gives you a way to set the text (and optionally the --> 
    <!-- icon) that will be seen in the launcher's create-shortcut user interface. --> 

    <activity-alias android:name=".CreateShortcuts" 
     android:targetActivity=".LauncherShortcuts" 
     android:label="test"> 

     <!-- This intent-filter allows your shortcuts to be created in the launcher. --> 
     <intent-filter> 
      <action android:name="android.intent.action.CREATE_SHORTCUT" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
1

Quant à votre question secondaire:

Je ne sais pas comment obtenir exactement ce que vous demandez, mais possible solution pourrait être d'avoir votre activité CreateShortcuts (ou équivalent) ouvrir une boîte de dialogue avec les choix possibles, à partir de laquelle votre activité renverrait un raccourci correspondant à l'élément sélectionné. Bien sûr, avec quelques informations supplémentaires (voir Intent.putExtra()) détaillant quel élément, dans votre cas, l'utilisateur Twitter, l'utilisateur sélectionné.