2010-08-18 14 views
13

OK, así que no es del todo seguro de que esto es posible ...Android - Procedimiento para interceptar la opción 'Instalar aplicación' intención

Pero tratar de escribir una aplicación para que pueda ejecutar algún código antes de cualquiera de las siguientes actividades son realizado.

1) APK se descarga desde la web y el mercado lanza instalador

2) Instalar el botón se pulsa en el mercado androide

¿Es posible interceptar y rápida sobre estos eventos, o haya Google bloqueado esas cosas abajo bastante apretado?

Respuesta

10

Esto no es una respuesta per se, pero no puedo encontrar ninguna herramienta de comentarios aquí. Lo siento. Tengo este problema también. Me gustaría poder detectar nuevas instalaciones de aplicaciones. Sé que es posible; por ejemplo, la aplicación Apps to SD publica una notificación cuando instalas una nueva aplicación que, al hacer clic, abre un cuadro de diálogo para mover esa nueva aplicación a la tarjeta sd. Hasta ahora, todo lo que he podido averiguar es así: manifest.xml:

... 
<receiver android:name=".IntentReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.PACKAGE_ADDED" /> 
    <action android:name="android.intent.action.PACKAGE_REMOVED" /> 
    <data android:scheme="package" /> 
    </intent-filter> 
</receiver> 
... 

IntentReciever.java:

public class IntentReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    context.startService(new Intent(context, YourService.class)); 
    } 
} 

YourService continuación, se crea y llama onCreate() entonces onStartCommand(). Sin embargo, no he podido depurar esto ni mostrar con éxito ninguna notificación de la clase de servicio, por lo que no estoy del todo seguro de que esto funcione. He conseguido que esto funcione para otros Receptores como android.intent.action.BOOT_COMPLETED.

+5

He añadido PACKAGE_REMOVED y la etiqueta . Una vez que esos estaban en mi manifiesto, mi aplicación informó correctamente cuando se instaló o eliminó cualquier aplicación. Por favor, consulte: http://groups.google.com/group/android-developers/browse_thread/thread/14589d5e0761c056 y http://developer.android.com/guide/appendix/faq/framework.html#7 – prodaea

5

Usando un BroadcastReceiver puede filtrar el intento de android.intent.action.PACKAGE_ADDED. Sin embargo, esto solo será después de las dos acciones que describes, no antes. Y no se detendrá ni interrumpirá la instalación.

AFAIK no hay forma de hacer nada antes o de interrumpir Market. Y luego, incluso estamos hablando de otra aplicación además de la que se está instalando por supuesto.

Cuestiones relacionadas