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 :

Questions diverses - téléchargement de fichiers


Sujet :

Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut Questions diverses - téléchargement de fichiers
    Bonjour ,

    J'aurais comme le titre l'annonce quelques questions concernant le téléchargement sur android.

    1 - Si je veux déployer une application au niveau local, es-ce que je peux par exemple le mettre sur : http://192.168.15.15/application/monapplication.apk (et y accéder via mon device android) ? cela me téléchargera et m'installera l'application ?

    2 - Suis-je obliger de faire un Webservice pour importer un fichier localement ?

    Dans mon cas , ma base de donnée est encrypter dans un .mp3 et décrypter par l'application pour finir en .sqlite dans /data/data/package/databases/
    La base au final travaillant en Offline.


    C'est à dire es-ce que un httpGet sur l'url (exemple) : http://192.168.15.15/application/mabase.mp3 pourrais être correct ?

    [edit]Une chose du style suivant , qui irais chercher par rapport a une URL plutôt que le dossier assets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream myInput = myContext.getExternalStorage().open("http://192.168.15.15/application/mabase.mp3");
    Cela pourrait-il marcher ? [/edit]


    Sinon faire le passage de .sqlite(local) vers .sqlite(/data/data/package/databases/) ? J'encryptais en .mp3 pour des restrictions de compression dans le fichier Assets.

    Voila mes principales questions.
    Si vous avez des réponses personnels, des essayes , des sujets en parlant , des tutoriels .. je suis preneur.Je n'en suis que à de l'étude préliminaire pour une réalisation future.

    Je vous remercie d'avance,

    Cordialement,
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    Toutes les questions précédentes sont toujours d'actualités.

    J'aimerais pouvoir déployer une application au niveau "local" ainsi que télécharger les mises a jours de base de données de façon également local (base dite "sensible").
    Les maitres mots étant : Local, OFFline , Sensible , Wifi, sécurité.

    Comment procéder ?

    Je pense avoir décrit au mieux mon raisonnement et mon besoin,

    Cordialement,
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  3. #3
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Une idée en l'air, pourquoi ne pas créer un QRCode que tu stockerais en local comme cela juste besoin de l'utiliser et tu téléchargera l'apk tout seul. Un AppInstaller et le tour est joué non ?

    Ou souhaites tu que cela s'installe automatiquement ? Car si c'est le cas cela implique que tu installe une application gérant ce cas ce qui complique pas mal la chose ^^.

    J'aimerais pouvoir déployer une application au niveau "local" ainsi que télécharger les mises a jours de base de données de façon également local (base dite "sensible").
    Si la structure de la base de donnée ne bouge pas, tu peux créer une connexion sur ta bd du réseaux local (serveur).
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    Sublime idée celle du QRCode , j'avoue ne pas y avoir pensé.. {Shame}.

    L'idée c'est que j'ai une application qui travail en Offline. Cette application je dois pouvoir la diffuser sur moult tablette sans utiliser le câble (Optimisation du temps et de la pénibilité).
    Du coup cette partie la peut être QRCode cela me semble correct.

    Mais ensuite j'aimerais pouvoir faire une mise à jours de la base de donnée exclusivement. (la base change 2 à 4fois par ans pour des événement majeurs).
    Un menu simple avec un téléchargement est le plus simple ? ou dois-je créer un webservice (sa me semble sur-proportionné).

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public void getFile(URL u) throws IOException
    {
    // url de type "http://www.monsite.Dyndns.com/tablette/maBase.mp3"
    //ou bien : "http://10.40.2.40/tablette/maBase.mp3"
    // ????
     
    private static String DB_PATH = "data/data/com.mabase/databases/";
    private static final String DB_NAME = "mabase.sqlite";
    String DB_NAME = u.getFile();
    FileName = DB_NAME.substring(FileName.lastIndexOf('/') + 1);
    URLConnection uc = u.openConnection();
    int FileLenght = uc.getContentLength();
    if (FileLenght == -1) {
    monView2.setText("Fichier non valide:"+ FileName);
    }
    try
    {
    InputStream myInput = uc.getInputStream();
    String outFileName = DB_PATH + FileName;
    FileOutputStream myOutPut = new FileOutputStream(outFileName);
    byte[]buff = new byte[1024];
    int l = myInput.read(buff);
    while(l>0)
    {
    myOutPut.write(buff, 0, l);
    l = myInput.read(buff);
    }
    myOutPut.flush();
    myOutPut.close();
    }
    catch(Exception e)
    {
    monView2.setText( e.toString());
    }
    }
    Grosso modo ... si ya un code plus propre et fonctionnel je suis preneur !!


    Merci de ton "éclairage" sur une partie de ma problématique en tout cas .
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  5. #5
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Un menu simple avec un téléchargement est le plus simple ? ou dois-je créer un webservice (sa me semble sur-proportionné).
    Bonjour,

    Si tu veux quelque chose de sécurisé je ne sais pas si c'est une bonne idée d'avoir la BD en accès sur le réseaux, le mieux reste toujours d'avoir un serveur qui fait le lien avec la BD, non ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Justement je me pose la question , étant donné quand la BD est mise sur "l’hébergement"(ip sur le réseau/poste/serveur de stockage) le temps de mettre à jours une trentaine de Tablette. Puis enlever.

    Je suis vraiment sur une intervention non récurrente (0 à 4 fois par ans).

    Ou si un Webservice peut être fait très simplement je suis preneur pourquoi pas.
    Je n'est pas encore trouver de tutoriel simple , efficace et clair qui face ce genre de chose.

    Je vais essayer de mettre en place le QRCode déjà pour l'apk en lui même.
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    je suis donc sur la partie "mise à jours" de la base de donnée.

    J'aimerais avoir la possibilité d'adapter le code suivant selon 2 cas de figure .. :

    1) Mise à jours selon l'URL : (ou j'aurais besoin d'une aide sur l'adaptation )
    Dans cette partie quand il n'arrive pas à joindre l'URL il me créais une BaseDeDonnée de 3072, ce qui correspond donc à une base vide. Et donc ensuite ce qui fait planter mon application .. !
    CODE pour la copie via URL :
    Les import adaptés au java.net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import java.net.URL;
    import java.net.URLConnection;
    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
    20
    21
    22
    private void copyDatabase() {
    		Log.e(TAG, "copyDatabase called");
    		try {
    			final URLConnection conn = new URL("http://www.monSite.com/testing/mabase.mp3").openConnection();
    			conn.connect();
     
    		InputStream myInput = conn.getInputStream();
    		String outFileName	= DB_PATH + DB_NAME;
    		Log.e(TAG, "outfile: " +outFileName);
    		OutputStream myOutput = new FileOutputStream(outFileName);
    		byte[] buffer = new byte[1024];
    		int lenght;
    		while((lenght = myInput.read(buffer))>0){
    			myOutput.write(buffer, 0, lenght);
    		}
    		myOutput.flush();
    		myOutput.close();
    		myInput.close();
    		}catch(IOException e){
    			Log.e(TAG, "message copyDatabase : " +e.getMessage());
    		}
    	}
    CODE pour la copie via le Assets() : [Qui marche en lui même très bien]
    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
    private void copyDatabase() {
    		Log.e(TAG, "copyDatabase called");
    		try {
    		InputStream myInput = myContext.getAssets().open("mabase.mp3");//DB_NAME);
    		String outFileName	= DB_PATH + DB_NAME;
    		Log.e(TAG, "outfile: " +outFileName);
    		OutputStream myOutput = new FileOutputStream(outFileName);
    		byte[] buffer = new byte[1024];
    		int lenght;
    		while((lenght = myInput.read(buffer))>0){
    			myOutput.write(buffer, 0, lenght);
    		}
    		myOutput.flush();
    		myOutput.close();
    		myInput.close();
    		}catch(IOException e){
    			Log.e(TAG, "message : " +e.getMessage());
    		}
    	}
    2) La chose est que j'aimerais qu'il fasse :
    1 - si accès à la base de donnée URL possible : La télécharger
    2 - si accès bddURL impossible : prendre la bdd local dans les assets()
    3 - Si aucun des deux : afficher un message le disant. (sachant que ce cas en règle général serait extrêmement rare.)

    Donc j'aimerais savoir si : premièrement mon code pour l'accès à la baseURL est correct , ensuite si quelqu'un peu m'aider sur la structure conditionnel à faire pour réaliser la condition : bddURL puis bddassets().
    ET question essentiel aussi : Comment ce connecter depuis l'émulateur sur une base de donnée situer dans l'ordinateur ... (genre C:/windows/android/bdd/mabase.mp3) , il me semble avoir lu quelque part quelques chose du style : 10.0.0.42 ou semblable mais je ne tombe plus dessus ... !


    Je vous remercie.
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  8. #8
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    Pour ce qui est d'accéder à un service présent sur le PC hôte depuis l'émulateur, il faut utiliser l'adresse ip 10.0.2.2 (cf doc de l'émulateur)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Ok donc pour la mise à jours (téléchargement) de la base en ligne, cela marche à la perfection.

    Ensuite il me reste plus que à faire ma boucle imbriquée ! Si du monde qui passe et qui est pro de la boucle ^^ !

    J'ai pas développer sur 10.0.2.2, j'ai directement upper online du coup.
    PS : Ne pas oublier la permission internet !

    Merci beaucoup,
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

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

Discussions similaires

  1. [Débuter] La question bête du jour: le téléchargement de fichier avec Qt
    Par VivienD dans le forum Réseau
    Réponses: 4
    Dernier message: 29/03/2013, 16h11
  2. Téléchargement de fichier
    Par casafa dans le forum Web & réseau
    Réponses: 21
    Dernier message: 18/06/2009, 23h34
  3. Questions diverses sur TIBDataset et TDBGrid
    Par AlexB59 dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/11/2005, 17h14
  4. Réponses: 5
    Dernier message: 05/11/2005, 17h53
  5. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35

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