2010-11-01 9 views
9

C'è un modo per nascondere un'icona dell'applicazione dall'elenco delle applicazioni Android? L'applicazione deve essere scaricata da Market e aperta una GUI per configurare la mia applicazione. Non voglio vedere alcuna icona della mia applicazione nell'elenco delle applicazioni. L'utente non dovrebbe essere in grado di eseguirlo.Nascondere un'applicazione dall'elenco delle applicazioni Android

Tra l'altro so che in qualche modo: rimuovere questa riga dalla categoria manifesta android:name="android.intent.category.LAUNCHER"

Ma non è lavorato per me, perché l'interfaccia grafica non viene mostrato.

Grazie mille!

risposta

4

La rimozione della categoria di avvio è corretta.

Prova ad aggiungere android.intent.category.DEFAULT al filtro intent per poter chiamare l'attività.

2

Grazie per la riproduzione. Ho trovato un modo per nascondere l'icona dell'applicazione dall'elenco delle applicazioni;

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

Ma in tempo di reinstallazione dell'applicazione si verifica un errore "Classe di attività non esiste" e non è possibile reinstallare l'applicazione senza disinstallarlo. .... qual è il problema ?

C'è anche una variante di Launcher Pro. Ma questa è un'applicazione. La mia app deve essere scaricata da Android Market e non c'è alcuna garanzia che tutti gli utenti abbiano Launcher Pro. Desidero nascondere automaticamente l'icona dell'applicazione dall'elenco delle applicazioni. Il metodo con PackageManager funziona per me ... ma c'è un problema riguardante la reinstallazione. È importante quando si desidera aggiornare l'applicazione da Market.

+0

Ho lo stesso requisito ora. Si prega di condividerlo se avete trovato la soluzione. – png

0

Ho trovato un modo per farlo funzionare quando si reinstalla l'app.

Aggiungere un ricevitore di trasmissione con azione intent filter android.intent.action.PACKAGE_ADDED.

Nel metodo onReceived è necessario attivare il componente disabilitato:

ComponentName componentToEnable = new ComponentName(context, Your_disabled_class.class); 
PackageManager pm = context.getPackageManager(); 
pm.setComponentEnabledSetting(componentToEnable, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,       PackageManager.DONT_KILL_APP); 

completa AndroidManifest.xml per la ricevente:

<receiver android:name="PackageChangeReceiver"> 

<intent-filter> 
<action android:name="android.intent.action.PACKAGE_ADDED"/> 
<action android:name="android.intent.action.PACKAGE_REPLACED"/> 
<action android:name="android.intent.action.PACKAGE_REMOVED"/> 

<data android:scheme="package"/> 

</intent-filter> 
</receiver> 
Problemi correlati