2012-01-28 21 views
7

Duplicar posible:
Android: install .apk programmaticallyaplicación Android auto-actualización

necesito para actualizar mi aplicación Android. Internamente el programa, descargo la nueva versión. ¿Cómo puedo reemplazar la versión actual por la nueva que se descargó (programáticamente)?

URL url = new URL("http://www.mySite.com/myFolder/myApp.apk"); 
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
try 
{ 
    FileOutputStream fos = this.getApplicationContext().openFileOutput("myApp.apk", Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE); 

    InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); 

    StringBuilder sb = new StringBuilder(); 

    byte[] buffer = new byte[8192]; 
    int len; 
    while ((len = in.read(buffer)) != -1) 
    { 
     // EDIT - only write the bytes that have been written to 
     // the buffer, not the whole buffer 
     fos.write(buffer, 0, len); // file to save app 
    } 
    fos.close(); 

    ....  here I have the file of new app, now I need use it 

Respuesta

11

Si el apk actualizado tiene el mismo nombre del paquete y se firma con la misma clave que sólo puede enviar una intención que llamar a un instalador por defecto de Android. La apk instalada será anulada.

+0

Hola @lexmiir, gracias por responder, hago lo que dijiste y ahora recibí un diálogo de alerta que decía Error del analizador: hay un problema al analizar el paquete. ¿Alguna pista? :-) – nonickh

+0

Hola @nonickh, ¿has firmado ambos apk con la misma clave? Este error puede aparecer cuando las aplicaciones con el mismo nombre de paquete están firmadas con diferentes claves – lexmiir

+0

Hola @lexmiir, Perdón por la demora, comparé los dos archivos y son diferentes, probablemente causados ​​por el proceso de copiar el sitio, primero intento para resolver este problema, agradecido por su soporte – nonickh

Cuestiones relacionadas