2012-10-22 4 views
1

Est-il possible de détecter l'application de lancement par défaut sur un appareil depuis votre application?détection du lanceur par défaut, android

Je fouille avec PackageManager mais ne semble pas voir ce que je cherche, je voudrais que mon application de type lanceur se comporte différemment lorsqu'il est défini comme le lanceur par défaut, donc j'essaie de détecter par programme si l'utilisation a mis à être le lanceur par défaut ou non

le code i essayé ci-dessous retourne système Android, peu importe ce que je défini comme le lanceur par défaut:

pm = getApplicationContext().getPackageManager(); 
     Intent i = (new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER)); 
     final ResolveInfo mInfo = pm.resolveActivity(i, 0); 
     Log.v("curent default launcher",":::::::::"+ pm.getApplicationLabel(mInfo.activityInfo.applicationInfo)); 

Répondre

2

Dans l'exemple que Google prévoit un remplacement du lanceur du l'activité a la définition suivante dans le manifeste:

<activity android:name="Home" 
       android:theme="@style/Theme" 
       android:launchMode="singleInstance" 
       android:stateNotNeeded="true"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.HOME"/> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

Sur cette base, vous devez ajouter les catégories suivantes pour effectuer des requêtes pour le lanceur

Intent i = new Intent(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
i.addCategory(Intent.CATEGORY_DEFAULT); 
Questions connexes