2010-04-21 13 views
5

Iam planea crear una aplicación y no publicarla en el mercado de google. quiero que los usuarios actualicen su aplicación de vez en cuando, cuando las actualizaciones se envíen a través del servidor (no nos metamos en la idea de cómo voy a hacer esto) ... así que para esto necesito dar a cada aplicación alguna identificación, así que sé que ese usuario tiene que actualizar su aplicación, y no la nueva (quiero evitar que el usuario tenga dos versiones de la aplicación) ... y por supuesto instalar la aplicación a los nuevos usuarios. ¿cómo podría firmar esas aplicaciones con la versión cuando realizo una actualización manualmente? mybe alguna otra idea?Crear versiones manuales

gracias, ray.

Respuesta

15

Puede usar los atributos android:versionCode y android:versionName en AndroidManifest.xml. De esa manera, siempre y cuando el nombre del paquete es la misma que no se solapará y se puede obtener esa información como este para ver si hay una nueva versión disponible:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="org.moo.android.myApp" 
    android:versionCode="12" 
    android:versionName="1.2.37"> 

continuación, puede leer estos valores y compara con los valores de su servidor, así:

try 
{ 
    PackageManager manager = context.getPackageManager(); 
    PackageInfo info = manager.getPackageInfo("org.moo.android.myApp", 0); 
    int code = info.versionCode; 
    String name = info.versionName; 

    // Compare with values on the server to see if there is a new version 
} 
catch(NameNotFoundException nnf) 
{ 
    nnf.printStackTrace(); 
} 

Si usted está comprobando para la versión de la misma aplicación, puede reemplazar el nombre del paquete codificado con context.getPackageName().

+0

+1 Esta es probablemente la versión "más limpia" de lo que sugerí. (y francamente la forma en que probablemente se supone que debes hacerlo ;-)) –

+4

Puedes usar 'context.getPackageName()' en lugar de codificarlo si quieres. Creo. – Timmmm

0

No me preocuparía firmarlos por decir, ¿por qué no solo tener un valor en el archivo strings.xml que tiene el número de versión? Una simple comprobación del valor en el servidor podría determinar si es necesaria una actualización.

+0

gracias, también intento esta solución – rayman

Cuestiones relacionadas