越來越多行動裝置支援 Java ME,藍牙裝置亦同。Java APIs for Bluetooth Wireless Technology (JABWT,JSR 82) 定義了藍牙通訊的標準 API,支援快速開發便捷、安全、用途廣泛的藍牙應用。
javax.bluetooth:核心藍牙 API(裝置管理、服務發現、連線建立)javax.obex:物件交換協定 (OBEX) APIJABWT 建構於通用連線架構 (GCF) 之上,所有藍牙系統需支援藍牙控制中心 (BCC) 進行堆疊初始化配置。
LocalDevice(本地裝置資訊)、RemoteDevice(遠端裝置資訊)DiscoveryAgent + DiscoveryListener,支援查詢模式、預知裝置列表、緩存列表三種方式LocalDevice local = LocalDevice.getLocalDevice();
local.setDiscoverable(DiscoveryAgent.GIAC);
DiscoveryAgent agent = local.getDiscoveryAgent();
agent.startInquiry(DiscoveryAgent.GIAC, this); // this 實作 DiscoveryListener
StreamConnectionNotifier service = (StreamConnectionNotifier)
Connector.open("btspp://localhost:uuid"); // 伺服器連線 URL
ServiceRecord sr = local.getRecord(service);
// 等待用戶端連線
StreamConnection conn = (StreamConnection) service.acceptAndOpen();
// ... 資料交換 ...
service.close();
// URL 格式:btspp://<藍牙位址>:<通道號>
String url = "btspp://508031205080110F1B1B1D1C100:8";
StreamConnection conn = (StreamConnection) Connector.open(url);
// ... 讀寫資料 ...
DiscoveryListener 回調:deviceDiscovered、inquiryCompleted、servicesDiscovered、serviceSearchCompletedConnection、InputStream/OutputStream、取消 DiscoveryAgent 查詢