Masquer l'icône de l'application

Je fais une application Android. Je souhaite masquer l'icône de l'application dans l'émulateur et je souhaite démarrer ma demande en appuyant sur quelques chiffres, par exemple 456 #. Y a-t-il un moyen de faire cela?

  • Android: Intents implicites contre les récepteurs de diffusion
  • Comment créer une bannière admob par programme?
  • Android SplashScreen
  • Modification d'un diviseur avec setDivider dans un ListActivity sans ListView personnalisé?
  • GMail pour KitKat se bloque en envoyant des pièces jointes qui ne sont pas des images ou des vidéos
  • Emulateur Visual Studio pour Android bloqué sur "OS démarre ...", uniquement sur API Level 23 / Android 6
  • Comment faire une animation «occupée» dans Android?
  • Formatage de la date et de l'heure en fonction des paramètres régionaux
  • Release-Debug Builds pour une application Android
  • Android et obtenez une vue avec l'identifiant comme chaîne
  • Est-ce que Environment.getExternalStorageDirectory () renvoie un dossier de données utilisable quand aucune carte sd n'est montée?
  • Erreur: android.app.SuperNotCalledException
  • 5 Solutions collect form web for “Masquer l'icône de l'application”

    Pour masquer l'icône de l'application du lanceur, vous pouvez le faire

    PackageManager packageManager = context.getPackageManager(); ComponentName componentName = new ComponentName(context, LauncherActivity.class); packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

    Pour lancer l'application en appuyant sur le numéro, commencez par ajouter une autorisation suivante dans le fichier principal

      <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 

    Ensuite, enregistrez le récepteur

     <receiver android:name=".LaunchAppViaDialReceiver"> <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> 

    Ensuite, créez une classe de récepteur

      public class LaunchAppViaDialReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Bundle bundle = intent.getExtras(); if (null == bundle) return; String phoneNubmer = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); //here change the number to your desired number if (phoneNubmer.equals("12345")) { setResultData(null); Gaurdian.changeStealthMode(context, PackageManager.COMPONENT_ENABLED_STATE_ENABLED); Intent appIntent = new Intent(context, LauncherActivity.class); appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(appIntent); } } 

    Si vous souhaitez cacher l'icône de l'application, il est préférable de montrer l'icône en premier et de laisser savoir à l'utilisateur comment démarrer l'application une fois l'icône disparue. Créez d'abord un alias d'activité dans le manifeste et déplacez votre filtre d'intention là-bas. De cette façon, vous pouvez désactiver l'icône sans désactiver l'activité.

     <activity android:name=".MainActivity" android:label="@string/app_name" > </activity> <activity-alias android:name=".Launcher" android:targetActivity=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity-alias> 

    Obtenez le nom du composant de l'alias du lanceur en utilisant le nom de votre paquet:

     private static final ComponentName LAUNCHER_COMPONENT_NAME = new ComponentName( "your.package.name", "your.package.name.Launcher"); 

    Vous pouvez vérifier s'il est déjà désactivé …

     private boolean isLauncherIconVisible() { int enabledSetting = getPackageManager() .getComponentEnabledSetting(LAUNCHER_COMPONENT_NAME); return enabledSetting != PackageManager.COMPONENT_ENABLED_STATE_DISABLED; } 

    … et désactivez le cas échéant après avoir donné les informations de l'utilisateur:

     private void hideLauncherIcon() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Important!"); builder.setMessage("To launch the app again, dial phone number 12345."); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { getPackageManager().setComponentEnabledSetting(LAUNCHER_COMPONENT_NAME, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } }); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.show(); } 

    Pour lancer à partir du composeur, créez un récepteur de diffusion:

     public class LaunchViaDialReceiver extends BroadcastReceiver { private static final String LAUNCHER_NUMBER = "12345"; @Override public void onReceive(Context context, Intent intent) { String phoneNubmer = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); if (LAUNCHER_NUMBER.equals(phoneNubmer)) { setResultData(null); Intent appIntent = new Intent(context, MainActivity.class); appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(appIntent); } } } 

    Ajoutez-le au manifeste:

     <receiver android:name=".LaunchViaDialReceiver" > <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> </intent-filter> </receiver> 

    Et ajouter la permission au manifeste:

     <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 

    La réponse à la première partie de votre question, essayez ce code:

     PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

    Votre application ne sera pas visible, mais l'utilisateur peut toujours le trouver dans les Paramètres >> Applications >> Gérer l'application

    Cette réponse peut également vous être utile.

    N'oubliez pas de poster votre réponse ici, si vous avez déjà atteint la fonctionnalité (en appuyant sur un certain nombre et en ouvrant notre application).

    Notez que la solution:

     PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

    Rendra l'application NON évolutive à partir de Google Play car le système d'exploitation ne trouvera pas le paquet après la désactivation de ce composant et ne pourra pas le réinstaller, à moins que l'application ne soit pas désinstallée (ce qui n'est pas un comportement convivial)

     public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hideapplication(); } private void hideapplication() { // TODO Auto-generated method stub PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.