Comprobando la versión de mi aplicación programáticamente en Android Market

Actualmente estoy verificando el código de la versión de la aplicación en el lanzamiento y la comparé con el último código de la versión en mi servidor, y de acuerdo con este usuario que coincido, envío la última actualización del mercado de Android.

Funciona bien pero mi problema es que tengo que cambiar manualmente el último código de versión en mi servidor y no sé exactamente cuándo se activa la nueva versión de APK en el mercado.

¿Hay alguna manera de verificar el código de la versión de la aplicación en el mercado de Android directamente para que pueda enviar al usuario directamente al mercado cuando se active la nueva aplicación?

Google Play no proporciona ninguna API oficial para recuperar metadatos. Sin embargo, puede consultar la API no oficial en http://code.google.com/p/android-market-api/ .

Específicamente, eche un vistazo a la página Wiki HowToSearchApps . La respuesta a la consulta contiene información de la versión:

 { "app": [ { "rating": "4.642857142857143", "title": "Ruboto IRB", "ratingsCount": 14, "creator": "Jan Berkel", "appType": "APPLICATION", "id": "9089465703133677000", "packageName": "org.jruby.ruboto.irb", "version": "0.1", "versionCode": 1, "creatorId": "\"Jan Berkel\"", "ExtendedInfo": { "category": "Tools", "permissionId": [ ... 

Podemos hacer una coincidencia de patrones para obtener la versión de la aplicación desde PlayStore.

Para que coincida con el último patrón de Google playstore, por ejemplo,

Current Version

XXX

primero tenemos que hacer coincidir la secuencia del nodo anterior y luego desde la secuencia anterior obtener el valor de la versión. A continuación se muestra el fragmento de código para el mismo:

  private String getAppVersion(String patternString, String inputString) { try{ //Create a pattern Pattern pattern = Pattern.compile(patternString); if (null == pattern) { return null; } //Match the pattern string in provided string Matcher matcher = pattern.matcher(inputString); if (null != matcher && matcher.find()) { return matcher.group(1); } }catch (PatternSyntaxException ex) { ex.printStackTrace(); } return null; } private String getPlayStoreAppVersion(String appUrlString) { final String currentVersion_PatternSeq = "
]*?>Current\\sVersion
]*?>(.*?)>
]*?>(.*?)>]*?>(.*?)"; final String appVersion_PatternSeq = "htlgb\">([^< ]*)XXX
playStoreAppVersion = getAppVersion (appVersion_PatternSeq, versionString); } return playStoreAppVersion; }

Tengo esto resuelto a través de esto. Espero que ayude.