Question

Voici le scénario:

Je dois écrire une application pour Android pour créer une prise RFCOMM à un PC avec un dongle Bluetooth (je vais écrire le serveur trop).

Mon exigence est que l'utilisateur n'a pas à coupler appareil manuellement.

En fait, avec un grand hack, j'utilise le createInsecureRfcommSocket .

Un peu scénario : J'ai une application Android qui échange des informations avec une boîte Linux avec une prise RFCOMM ouverte. Je peux régler manuellement le code PIN sur les dispositifs (disque de codage, il existe une option)

Je suis à la recherche des routes différentes:

Écrire un wrapper JNI

Comme cela a été fait ici par Max Kellermann, je peux écrire un JNI la couche de faire toute la phase de couplage. Cela devrait être une bonne option, mais il y a un problème:

Le 4b NDK ne fournit pas les bibliothèques libbluetooth, donc -lbluetooth échoue, ainsi que la v.3 NDK.

Options:

  1. Trouvez la NDK 1.5 (qui inclut lib Bluetooth). Après des jours de recherche sur le web que je suis pas en mesure de savoir. Tout le monde a ou sait où je peux le trouver?
  2. Compiler libbluetooth pour Android par moi-même et les utiliser pour -lbluetooth. Non, il la chance, je ne suis pas en mesure de les construire. Tout soupçon?

Utilisez quelque chose exposé par les API

Tout savoir comment puis-je utiliser createRfcommSocketToServiceRecord demander à l'utilisateur de ne pas associer manuellement le dispositif? C'est possible? Comment dois-je écrire le serveur?

Quelque chose que je ne sais pas

Peut-être (bien sûr!), Il y a quelque chose que je ne sais pas. Peut-être que je peux utiliser autre chose? Pas rfcomm? SDP?

Je pourrais peut-être jumeler manuellement avec l'API Android?

J'espère avoir été assez clair, sinon il suffit de demander. Et encore, comme ce n'est pas la première fois, je suis entre vos mains:)

Merci pour tous les gars de soutien!

Était-ce utile?

La solution

A la fin, je peux dire que vous ne pouvez pas .

Même si vous trouvez un moyen, en utilisant des enveloppes, écrivant des modules de C et ainsi de suite, l'évolution android va probablement changer la chose que vous utilisez.

Et donc, il n'y a pas d'autre choix. Malheureusement.

Voyons voir comment API Android Bluetooth va changer dans l'avenir.

Autres conseils

L'API Android Bluetooth n'est pas finalisé, et changement. À utiliser à vos risques et périls. Cette classe implémente une API à la couche RFCOMM Bluetooth. Une prise RFCOMM est similaire à une prise de courant normale en ce qu 'il faut une adresse et un numéro de port. La différence est bien entendu que l'adresse est une adresse de dispositif Bluetooth, et le numéro de port est un canal RFCOMM. L'API permet la mise en place de prises d'écoute via les méthodes se lient, écoutent et acceptent, ainsi que pour la réalisation de connexions sortantes avec connexion, ConnectAsync et waitForAsyncConnect. Après la construction d'une prise, vous devez créer puis détruire quand vous avez terminé de l'utiliser. Les deux créer et d'accepter le retour d'un descripteur de fichier pour les données réelles. Vous pouvez également appeler getInputStream et getOutputStream pour récupérer les flux respectifs sans passer par le FileDescriptor.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top