IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Versioning automatique des applications android


Sujet :

Android

  1. #1
    Membre régulier Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Points : 87
    Points
    87
    Par défaut Versioning automatique des applications android
    Bonjour à tous !

    Je désirais savoir si il existait un mécanisme intégré à androïde concernant le versioning des applications ? J'ai été voir cette page:
    http://developer.android.com/guide/p...ersioning.html ou on pouvait récupérer la version de l'application en cours avec le PackageManager.

    Mais je désirais que mon application test d'elle même au démarrage sur un serveur la présence d'un apk avec une version supérieure. Au quel cas la télécharge et l'installe.

    Je me doute bien qu'il n'existe pas de mécanisme aussi complet. Mais juste tester sur un serveur si une application est plus récente cela serai cool déjà.

    Sinon je développerais tout...

    Merci !

  2. #2
    Membre régulier Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    Je suis parti pour coder le processus dans son ensemble et me voila avec une erreur:

    04-26 17:16:39.121: ERROR/dalvikvm(3237): Could not find class 'android.test.mock.MockContext', referenced from method com.adexos.android.composants.gui.Accueil.onCreate
    qui cause l'exception suivante:

    04-26 17:16:39.131: ERROR/AndroidRuntime(3237): Uncaught handler: thread main exiting due to uncaught exception
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): java.lang.VerifyError: com.adexos.android.composants.gui.Accueil
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at java.lang.Class.newInstanceImpl(Native Method)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at java.lang.Class.newInstance(Class.java:1472)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.app.Instrumentation.newActivity(Instrumentation.java:1100)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2186)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.app.ActivityThread.access$1800(ActivityThread.java:112)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.os.Handler.dispatchMessage(Handler.java:99)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.os.Looper.loop(Looper.java:123)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at android.app.ActivityThread.main(ActivityThread.java:3948)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at java.lang.reflect.Method.invokeNative(Native Method)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at java.lang.reflect.Method.invoke(Method.java:521)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    04-26 17:16:39.141: ERROR/AndroidRuntime(3237): at dalvik.system.NativeStart.main(Native Method)
    Cela signifie -t-il que je ne pourrais pas utiliser ce manager ou alors vous avez une solution ?

    edit: j'oubliais le code que j'ai utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MockContext mpm = new MockContext();

  3. #3
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Salut,

    Je suis tombé sur un bout de code qui pourrait t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    // Tu récupères les données binaires de ton application (via une requete http par exemple)
     
    byte[] data = //** binary apk file **
     
    // Tu écris ton fichier sur le téléphone
    String ApplicationAPK = "lenomdetonfichier.apk";
    fos = openFileOutput(ApplicationAPK, Context.MODE_WORLD_READABLE);
    fos.write(data);
     
    // Tu initialises une intent pour lancer l'installation...
    Intent intent = new Intent();
     
    String fileAbsPath = "file://" + getFilesDir().getAbsolutePath() + "/" +ApplicationAPK;
     
    intent.setAction(android.content.Intent.ACTION_VIE W);
    intent.setDataAndType(Uri.parse(fileAbsPath),
    "application/vnd.android.package-archive");
    startActivity(intent);
    J'ai pas du tout testé ce code, donc à prendre avec des pincettes, mais le principe me parait correct...
    Après pour le contrôle des versions, faudra le faire à la main...

    Sinon tu peux également juste envoyé une popup à l'utilisateur pour lui dire qu'une nouvelle version est dispo, et lui dire de passer par le market pour la mettre à jour, non ?

    Bon courage.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Citation Envoyé par titou624 Voir le message
    Je suis parti pour coder le processus dans son ensemble et me voila avec une erreur:

    qui cause l'exception suivante:

    Cela signifie -t-il que je ne pourrais pas utiliser ce manager ou alors vous avez une solution ?

    edit: j'oubliais le code que j'ai utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MockContext mpm = new MockContext();
    Concernant ton erreur, as-tu été jeter un oeil sur la javadoc ?
    All methods are non-functional and throw UnsupportedOperationException.
    MockContext
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  5. #5
    Membre régulier Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    Oki merci pour ces renseignements !

    En fait c'est pour une application en interne donc pas sur l'Android market .
    Donc tout a la main.

    Mon but était de passer par la fonction installPackage du PackageManager auquel on passe une Uri. Ceci pourrait me simplifier la tâche.
    Sauf que j'ai une erreur de permission:

    04-26 17:27:25.971: ERROR/AndroidRuntime(3374): Uncaught handler: thread main exiting due to uncaught exception
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adexos.android.composants.gui/com.adexos.android.composants.gui.Accueil}: java.lang.SecurityException: Neither user 10067 nor current process has android.permission.INSTALL_PACKAGES.
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.ActivityThread.access$1800(ActivityThread.java:112)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.os.Handler.dispatchMessage(Handler.java:99)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.os.Looper.loop(Looper.java:123)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.ActivityThread.main(ActivityThread.java:3948)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at java.lang.reflect.Method.invokeNative(Native Method)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at java.lang.reflect.Method.invoke(Method.java:521)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at dalvik.system.NativeStart.main(Native Method)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): Caused by: java.lang.SecurityException: Neither user 10067 nor current process has android.permission.INSTALL_PACKAGES.
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.os.Parcel.readException(Parcel.java:1234)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.os.Parcel.readException(Parcel.java:1222)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.content.pm.IPackageManager$Stub$Proxy.installPackage(IPackageManager.java:1660)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.ApplicationContext$ApplicationPackageManager.installPackage(ApplicationContext.java:2300)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.content.pm.PackageManager.installPackage(PackageManager.java:1475)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at com.adexos.android.composants.gui.Accueil.onCreate(Accueil.java:74)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1132)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
    04-26 17:27:25.981: ERROR/AndroidRuntime(3374): ... 11 more
    Pourtant j'ai bien mis cette ligne dans le manifest:

    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    Bref je pense que je vais passer par ton bout de code .

    Encore merci pour ton aide précieuse !

  6. #6
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Oublie pas également, si c'est pas déjà fait, de cocher la case "autoriser les applications ne provenant pas du market" sur ton téléphone. Peut être que ça résoudra ton soucis de permissions...

    En cherchant vite fait ton erreur sur google, on trouve souvent ceci en conclusion :
    Il faut rooter le téléphone pour avoir les droits...
    Sinon tu as essayer simplement en ouvrant un lien vers un fichier ".apk", peut être que ça va t'ouvrir le gestionnaire d'installation d'applications automatiquement ?
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  7. #7
    Membre régulier Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    Oui oui mon installe des Apk en allant le chercher dans un file explorer. Je vais tester ton code mais je galère a trouver un exemple de récupération de fichier binaire lol

    J'en suis là pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    URL url = new URL("http://adexos.fr/monitoring.apk");
    InputStream  reponse = url.openStream();
    Me reste plus qu'à trouver comment le lire et transformer tout ça en binaire

  8. #8
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Pense à faire une recherche sur la FAQ d'Android :

    http://android.developpez.com/faq/?p...sdk_dl_file_id
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  9. #9
    Membre régulier Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    Merci beaucoup pour tous ces renseignements.
    A bientôt et bonne soirée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 10/03/2012, 20h39
  2. Réponses: 10
    Dernier message: 17/06/2011, 18h37
  3. Réponses: 0
    Dernier message: 15/06/2011, 22h31
  4. Répertoire d'installation des applications Android
    Par Eriatolc dans le forum Android
    Réponses: 3
    Dernier message: 13/05/2011, 11h02
  5. Developper des applications Android pour Netbook ?
    Par LeMeD dans le forum Android
    Réponses: 0
    Dernier message: 25/01/2010, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo