Jak vytvořit Android RFCOMM zásuvku bez jakéhokoli zásahu uživatele?

hlasů
30

Zde je scénář:

Musím napsat aplikaci pro Android vytvořit socket RFCOMM k PC pomocí Bluetooth dongle (budu psát server taky).

Můj požadavek je, že uživatel nemusí ručně spárovat zařízení.

Ve skutečnosti, s velkým hack, jsem pomocí createInsecureRfcommSocket .

Trochu scénář : Mám aplikaci pro Android, který vyměňuje informace s Linuxovém s RFCOMM zásuvky otevřen. Mohu manuálně nastavit PIN na zařízení (hard kódování je to možnost)

Dívám se na různých cestách:

Napsat JNI obal

Jak tomu bylo zde Max Kellermann, mohu napsat JNI vrstvu, aby všechny fáze párování. To by mělo být dobrá volba, ale je tu problém:

NDK 4b neposkytuje libbluetooth knihovny, takže -lbluetooth selže, stejně jako NDK v.3.

Volby:

  1. Najít NDK 1.5 (která zahrnuje lib bluetooth). Po dnech hledání na webu jsem nemohl zjistit. Každý, kdo má, nebo ví, kde bych ho mohl najít?
  2. Kompilaci libbluetooth pro Android sebe a jejich použití pro -lbluetooth. No štěstí tam, nejsem schopen stavět. Jakýkoli náznak?

Použít něco vystavena API

Někdo vědět, jak mohu použít createRfcommSocketToServiceRecord a mít uživatel nemůže ručně spárovat zařízení? Je to možné? Jak mám psát server?

Něco Nevím

Možná (jistá!) Je něco, co nevím. Možná bych mohl použít něco jiného? Není RFCOMM? SDP?

Možná bych mohl ručně spárovat s Android API?

Doufám, že byli dostatečně jasná, pokud ne jen zeptat. A opět, protože to není poprvé, jsem ve vašich rukou :)

Díky za všechny kluky podpory!

Položena 17/11/2010 v 15:37
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Na závěr mohu říci, že to nejde .

Dokonce i když si najít způsob, pomocí obálky, psát C moduly a tak dále, bude android vývoj pravděpodobně změní věc, kterou používáte.

A tak není možné. Smutně.

Podívejme se, jak Android Bluetooth API bude v budoucnu změnit.

Odpovězeno 20/02/2011 v 14:22
zdroj uživatelem

hlasů
-1

API pro Android Bluetooth není dokončena, a bude měnit. Použití na vlastní nebezpečí. Tato třída implementuje rozhraní API k RFCOMM vrstvy Bluetooth. Zásuvkou RFCOMM je podobný normální zásuvky v tom, že bere adresu a číslo portu. Rozdíl je samozřejmě, že adresa je adresa Bluetooth zařízení a číslo portu je RFCOMM kanál. API umožňuje zřízení poslechu zásuvek pomocí metody vázat, poslouchat a přijmout, stejně jako k výrobě odchozích spojení se připojit, connectAsync a waitForAsyncConnect. Po konstrukci zásuvky, je třeba ji vytvořit a potom ji zničit, pokud se provádí pomocí jej. Oba vytvořit a přijmout vrátit deskriptor souboru pro aktuální data. Případně můžete volat getInputStream a getOutputStream získat příslušné proudy, aniž procházejí deskriptor souboru.

Odpovězeno 21/01/2011 v 06:52
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more