JRubyでBluetoothデバイスを検索してみる
Bluetoothに関する情報なかなか無いですが、JavaでアクセスできそうなのでJRubyに置きかえてサンプルを書いてみました。
ライブラリ準備
bluecoveというライブラリを使うとBluetoothを扱うことができるみたいです。
http://code.google.com/p/bluecove/
bluecove-2.1.0.jar
コーディング
バリバリJavaコードっぽくなってしまいましたが、Rubyのコードを以下に示します。
require 'java' import javax.bluetooth.LocalDevice import javax.bluetooth.DiscoveryAgent import javax.bluetooth.DiscoveryListener class BTSearch extend DiscoveryListener def initialize @obj = java.lang.Object.new local = LocalDevice.getLocalDevice agent = local.getDiscoveryAgent #search device started = agent.startInquiry(DiscoveryAgent::GIAC, self) @obj.synchronized { @obj.wait } end def deviceDiscovered(btDevice, cod) address = btDevice.getBluetoothAddress puts "address : #{address}" end def servicesDiscovered(transID, servRecord) end def serviceSearchCompleted(transID, respCode) end def inquiryCompleted(discType) @obj.synchronized { @obj.notifyAll } end end BTSearch.new