Подключите Android к Wii Remote с помощью Bluetooth
Я работаю над проектом на Android, в котором я хочу подключиться и установить связь между моим Android-устройством и Wii Remote / Balance Board. В настоящее время я пытаюсь использовать библиотеку motej и библиотеку bluecove для достижения этой цели. Я знаю, что эти две библиотеки могут работать вместе под Android, чтобы подключить устройство, потому что у меня настроено тестовое приложение, которое подключается правильно (и может отправлять данные, я могу заставить пульт грохотать и включать или выключать любой из светодиодов) но он неожиданно закрывается через мгновение после установления соединения. Я еще не уверен, почему это заканчивается так. Я очень новичок в разработке Bluetooth, поэтому я подумал, что этот путь с библиотеками поможет мне начать работу без необходимости разбираться в мельчайших подробностях связи. Но поскольку у меня возникли некоторые проблемы с моим текущим тестовым приложением, я начинаю задумываться, стоит ли мне вообще вообще беспокоиться об этих библиотеках или может быть эффективнее работать под Android API Bluetooth для подключения устройств и связи. Итак, мои вопросы:
- Можно ли подключать и отправлять / получать данные, которые мне понадобятся для того, чтобы получить все функциональные возможности пульта Wii под стандартным API-интерфейсом Android Bluetooth, или мне придется использовать что-то вроде библиотеки bluecove, которая у меня есть? сейчас?
- Если это возможно сделать без сторонней библиотеки bluetooth, то мне лучше изменить что-то вроде библиотеки motej для работы с Android Bluetooth API, а не как с javax.bluetooth? Или это потребует так много изменений, что я мог бы просто отказаться от этого и начать работать над своей новой библиотекой?
- У кого-нибудь есть какие-либо подсказки, которые могли бы указать мне правильное направление для получения этого тестового приложения, поскольку я сейчас исправил это? Мой вывод журнала ниже, я делаю это через соединение нормально, но секунду спустя мое приложение закрывается без диалогового окна принудительного закрытия или чего-либо еще.
- Кто-нибудь знает библиотеку, которая предназначена для предоставления доступа к пульту Wii с Bluetooth, который на самом деле создан для работы с Android, а не только с Java?
INFO / System.out (31264): найден мот: 00191D652A6B
INFO/WiiMoteTest1(31264): 00191D652A6B
WARN/System.err(31264): 14821 [DeviceInquiryThread-0] INFO motej.MoteFinder - found device: TOSHIBA-USER - 00037AB338F7 - 256:12 - 1835008
ERROR/BluetoothEventLoop.cpp(9154): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/30823/hci0
DEBUG/BluetoothService(9154): updateDeviceServiceChannelCache(00:03:7A:B3:38:F7)
ERROR/BluetoothEventLoop.cpp(9154): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/30823/hci0
DEBUG/BluetoothService(9154): updateDeviceServiceChannelCache(00:03:7A:B3:38:F7)
WARN/System.err(31264): 17470 [DeviceInquiryThread-0] INFO motej.MoteFinder - inquiry completed
DEBUG/dalvikvm(30209): GC_EXPLICIT freed 93 objects / 4464 bytes in 80ms
DEBUG/dalvikvm(31264): Debugger has detached; object registry had 0 entries
WARN/dalvikvm(31264): ReferenceTable overflow (max=512)
WARN/dalvikvm(31264): Last 10 entries in JNI local reference table:
WARN/dalvikvm(31264): 502: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 503: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 504: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 505: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 506: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 507: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 508: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 509: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 510: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): 511: 0x44d3a8b8 cls=Ljava/lang/Class; 'Lcom/intel/bluetooth/BluetoothStackBlueZ;' (164 bytes)
WARN/dalvikvm(31264): JNI local reference table summary (512 entries):
WARN/dalvikvm(31264): 512 of Ljava/lang/Class; 164B (1 unique)
WARN/dalvikvm(31264): Memory held directly by tracked refs is 164 bytes
ERROR/dalvikvm(31264): Failed adding to JNI local ref table (has 512 entries)
INFO/dalvikvm(31264): "in:00191D652A6B" prio=5 tid=12 RUNNABLE
INFO/dalvikvm(31264): | group="main" sCount=0 dsCount=0 s=N obj=0x44d59738 self=0x2501b8
INFO/dalvikvm(31264): | sysTid=31283 nice=0 sched=0/0 cgrp=default handle=2425592
INFO/dalvikvm(31264): | schedstat=( 49835206 61798099 541 )
INFO/dalvikvm(31264): at com.intel.bluetooth.BluetoothStackBlueZ.l2Receive(Native Method)
INFO/dalvikvm(31264): at com.intel.bluetooth.BluetoothL2CAPConnection.receive(BluetoothL2CAPConnection.java:117)
INFO/dalvikvm(31264): at motej.IncomingThread.run(IncomingThread.java:260)
ERROR/dalvikvm(31264): VM aborting