2010-05-26 2 views
6

J'ai déjà associé une question sur l'accès aux connexions Bluetooth déjà existantes paire ...Android: L'accès à une connexion

Comment un service à distance détecter une connexion déjà associé et attendre un transfert de fichiers de celui-ci?

Dans tous les commentaires sur stackoverflow, sur les tutoriels, ebooks ou sur google, il est toujours montré comment créer une nouvelle connexion en utilisant des sockets et ainsi de suite, mais aucun mot sur l'accès à un existant.

Est-ce possible? Si oui, peux-tu aussi me dire/montrer comment? Pour le moment, je n'ai aucune idée de comment commencer avec elle.

Si quelqu'un peut me aider à commencer :)

Répondre

2

Pairing signifie simplement que eachother ont authentifié les deux appareils. Cela n'implique pas une connexion socket ouverte. Après l'appariement, se connecte: Un côté crée une socket serveur et l'autre périphérique peut alors s'y connecter avec une socket client.

Je pense que la confusion provient du mélange de deux concepts: "déjà couplé" avec "déjà connecté". L'appariement signifie simplement qu'ils sont authentifiés. Les appareils ne peuvent pas se connecter sans le premier couplage, mais le couplage ne permet pas de connecter les appareils.

Pour faire une application attente pour un transfert de fichier, il serait quelque chose comme ceci:

  • appareil Make A appairées.
  • A partir de l'appareil B, recherchez les appareils à proximité et lorsque vous trouvez A, appairez avec (entrez un code PIN secret qui doit correspondre sur les deux appareils)
  • Maintenant que les appareils sont appairés, démarrez votre serveur de fichiers sur le périphérique A ou B (il crée ensuite un socket serveur et attend les connexions entrantes)
  • Puis initiez une connexion au serveur de fichiers à partir de l'autre périphérique.
  • Lorsque les sockets sont ouvertes, les données peuvent alors circuler.
+0

Salut, merci pour votre réponse. J'ai fait plusieurs tests concernant mon problème: Mon fichier est poussé via "Object Push Profile" ... dans mes tests il n'y a pas de "Connection" nécessaire pour lancer un transfert de fichier ... même l'appariement n'est pas nécessaire. Mais le problème est maintenant, qu'il n'y a que quelques types de fichiers supportés (tels que gif, jpg, ...), mais pas celui dont j'ai besoin (gpx). Comment puis-je changer cela? Mon problème est d'ouvrir une application quand ce type de fichier arrive sur mon téléphone ... est-ce possible ici? – poeschlorn

+1

Bien sûr, vous pouvez simplement créer un service qui ouvre un socket d'écoute (vous devez avoir un socket) et attend une connexion entrante. Dès réception d'une connexion, il obtient les données et déclenche ensuite l'intention de lancer une application ou une activité ou ce que vous voulez. –

+0

ok, je vais essayer ça – poeschlorn