2010-11-01 12 views
9

¿Hay alguna forma de ocultar un icono de aplicación de la lista de aplicaciones de Android? La aplicación debe descargarse de Market y abrir alguna GUI para configurar mi aplicación. No quiero ver ningún icono de mi aplicación en la lista de aplicaciones. El usuario no debería poder ejecutarlo.Ocultar una aplicación de la lista de aplicaciones de Android

Por cierto Sé que de alguna manera: eliminar esta línea de la categoría manifiesta android:name="android.intent.category.LAUNCHER"

Pero no se trabaja para mí, porque no se muestra la interfaz gráfica de usuario.

Muchas gracias!

Respuesta

4

La eliminación de la categoría del iniciador es correcta.

Pruebe agregar android.intent.category.DEFAULT al filtro de intención para poder invocar la actividad.

2

Gracias por reproducir. Encontré una manera de ocultar el icono de la aplicación de la lista de aplicaciones;

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

Pero en vez de volver a instalar la aplicación se produce el error "Clase de actividad no existe" y no es posible volver a instalar la aplicación sin desinstalarlo. .... Cuál es el problema ?

También hay una variante de Launcher Pro. Pero esta es una aplicación. Mi aplicación debe descargarse de Android Market y no hay garantía de que todos los usuarios tengan Launcher Pro. Quiero ocultar programáticamente el icono de la aplicación de la lista de aplicaciones. El método con PackageManager funciona para mí ... pero hay un problema con la reinstalación. Es importante cuando desea actualizar la aplicación desde Market.

+0

que tienen el mismo requisito ahora. Por favor, compártelo si has encontrado la solución. – png

0

He encontrado una manera de que esto funcione cuando reinstale la aplicación.

Agregue un receptor de difusión con acción de filtro de intención android.intent.action.PACKAGE_ADDED.

En el método onReceived debe activar su componente desactivado:

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 para el receptor:

<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> 
Cuestiones relacionadas