Bonjour.
Je souhaiterais connecter mon application à une tablette en USB.
J'ai essayer plusieur chose comme drive.name, sans succès.
Toutes les proposition sont bonnes à essayer.
Merci de vos réponses.
Cordialement.
Bonjour.
Je souhaiterais connecter mon application à une tablette en USB.
J'ai essayer plusieur chose comme drive.name, sans succès.
Toutes les proposition sont bonnes à essayer.
Merci de vos réponses.
Cordialement.
Tu veux faire quoi sur ta tablette ?
- L'application Desktop doit dialoguer avec une autre application sur la tablette ?
- Tu veux juste voir l'emplacement de stockage de la tablette ?
Quelques détails supplémentaires serait utiles
excuse moi de ne pas avoir donné assez de détails.
voila j'ai une appli sous android avec une base de données sqlite.
une autre en winform avec la même base de données.
je voudrais synchronisé les deux bases.
la synchro n'est pas le problème c'est juste la communication pour voir la base de données.
en gros je veux voir l'emplacement de stockage de la tablette.
mais si tu as un moyen de faire communiquer les deux appli je suis aussi preneur.cela pourrait m'être très utile bientôt.
merci de tes réponses
cordialement
Salut,
bah je pense qu'en branchant ta tablette à l'ordi via ton usb tu dois normalement avec l'explorateur Windows arriver à trouver le chemin complet vers ton fichier SQLite. Il ne te reste plus qu'à faire ta synchro.
Sinon sans câble tu peux le faire par FTP. Cela suppose un serveur ftp sur le PC qui héberge ton appli Winforms. Lorsque tu cliques sur sychro dans ton appli android il envoie le fichier SQLite sur le serveur ftp (@ip + login + mot de passe) en le renommant cequetuveux.temp. Une fois l'upload effectué (le fichier est complet) tu renommes cequetuveuxmaisunique.tonextension. Ton appli winforms recherche en permanence sur la racine du serveur ftp de nouveaux fichiers à synchro. Utilises une extension à toi au lieu de *.db3; c'est mieux. S'il trouve un nouveau fichier qui matche avec ton extension; tu bloques le traitement de recherche de nouveaux fichiers, tu fais la synchro, tu mets la nouvelle base à disposition en renommant retour.tonextension par exemple, tu supprimes le nouveau fichier et tu relances le processus de recherche de nouveaux fichiers.
Pendant ce temps, l'appli android qui a envoyé le fichier à demandé tous les Xs la liste des fichiers sur le serveur FTP. Dès qu'elle ne trouve plus le fichier qu'elle a envoyé cela signifie que la synchrp est faite et que normalement il y a un fichier qui se nomme retour.tonextension. Elle le télécharge et elle remplace sa base existante avec.
Si tu as plusieurs fichiers en provenance de android à synchroniser en même temps, tu fais la synchro de tous avec ta base locale, tu mets à dispo la nouvelle base et tu supprimes tous les fichiers "android". Comme ça toutes les appli restent en stand-by le temps de la synchro et récupèrent toutes la même base.
Je pense que ça devrait fonctionner.
Après personnellement je trouve les synchro de base pas top.... Le mieux étant un serveur SQL.
bonjour
-pour la première solution que tu as donnée cela ne fonctionne pas surtout que je cherche à avoir un chemin générique.si tu as un moyen pour le trouvé je suis preneur.
-pour la deuxième solution je ne sais pas comment utilisé le seveur ftp en c#. aurais tu un bout de code pour que je vois comment cela fonctionne?
la connexion doit être en wifi ? si oui il faut donc l'activer.( je réfléchi tout haut)
le serveur sql n'est pas possible vue que la tablette va servir dans des zone non couverte 3G ou wifi libre.
cordialement
Le serveur FTP est sur ton poste principal Winforms. Donc pas de FTP C# là dessus. Tu déplaces tes fichiers "normalement".
Tu as simplement à installer un serveur FTP que tu configures. J'aime bine filezilla sans vouloir faire de pub.
https://filezilla-project.org/download.php?type=server
Le principe c'est :tu créés un utilisateur et un mot de passe. Puis tu lui assignes un répertoire "maison" (le tout dans filezilla hein) sur lequel il va tomber quand il a se connecter en arrivant depuis un FTP android. A toi dans Winforms de désigner cet emplacement comme étant le répertoire où il scrute. (Paramètre).
Exemple upload Microsoft :
https://msdn.microsoft.com/fr-fr/lib...vs.110%29.aspx
Je pense qu'il te faut trouver un exemple upload/donwload/list FTP sur android.
Le protocole que j'ai décrit fonctionne pour 1Winforms / n androids
Si tu veux N winforms / n Android c'est plus compliqué. Tu n'échappera pas à un service maitre qui centralise la synchro. En 1/n c'est la Winforms qui est maitre car tu upload sur ton ftp et elle te sert un merge des bases. En n/n... il te faut un service windows qui s'exécute sur un serveur et toutes les applies upload et download sur le serveur ftp installé sur le serveur.
Enfin il y a au moins autant de manière de le faire qu'il y a de développeur ^^
Après tu jette le serveur SQL mais je pense que ça peut fonctionner. Car en zone hors couverture tu es sur ta base SQLite ok. Et lorsque tu as du réseaux bah tu fais une syncho.
bonjour
après plusieurs essais je me suis rendu compte que par ftp c'était lourd et plutôt lent.
je cherche toujours à trouver le chemin d'accès aux tablettes par usb.
merci pour l'aide toujours.
Lourd... Peut-être pas optimisé ? Je n'ai pas observé ce comportement sur mes appli ?
Si tu n'a pas envie de développer du ftp tu peux acheter une dll qui se résume à envoi / liste / télécharge et qui sera optimisée.
Pour la lenteur la vitesse de transfert n'est limitée que par la bande passante du moyen que tu utilises entre ta tablette et ton PC.
Bien entendu qu'un câble usb 2.0 / 3.0 permettra de faire passer plus de données que le wifi sur la même durée.
Moi aussi je serai intéressé par le chemin vers la tablette
les chemin donnés par
FMX.Dialogs.SelectDirectory('Tablette',Dir,DirName);
ou par ExtractFilePath sur un opendialog1.Execute
donne des message d'erreur sur l'ouverure des fichiers
alors que windows le fait sans souci ?!
Les tablettes/telephones utilisent le protocole MTP (Media Transfer Protocol) donc il n'est pas possible de les utiliser comme un disque classique. Il faut utiliser une couche qui s'appelle WPD (Windows Portable Devices).
Pour ce faire, Microsoft a mis en place une API COM qui se charge de faire le boulot. Les instructions sont ici : C# and the WPD API.
Il y a un exemple d'utilisation ici : Enumerating WPD devices in C# et il y a un "wrapper" disponible ici : Derek Wilson / PodcastUtilities / PodcastUtilities.PortableDevices.
Pas simple tout ca...
Less Is More
Pensez à utiliser les boutons , et les balises code
Desole pour l'absence d'accents, clavier US oblige
Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager