/** Called by iPOJO when the instance becomes invalid. */ @Invalidate private void stop() { logger.log(LogService.LOG_DEBUG, "BD Remote control component instance is stopping."); if (incomingThread != null) { incomingThread.disconnect(); incomingThread = null; } }
/** Called by iPOJO when the instance becomes valid. */ @Validate private void start() { logger.log(LogService.LOG_DEBUG, "BD Remote control component instance is starting."); String btAddress = null; LocalDevice localDevice = null; try { localDevice = LocalDevice.getLocalDevice(); } catch (BluetoothStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent(); RemoteDevice[] cachedDevices = discoveryAgent.retrieveDevices(DiscoveryAgent.CACHED); if (cachedDevices != null) { int s = cachedDevices.length; for (int i = 0; i < s; i++) { logger.log( LogService.LOG_DEBUG, "Cached device" + i + ":" + cachedDevices[i].getBluetoothAddress() + ", " + cachedDevices[i]); btAddress = cachedDevices[i].getBluetoothAddress(); } } RemoteDevice[] preknownDevices = discoveryAgent.retrieveDevices(DiscoveryAgent.PREKNOWN); if (preknownDevices != null) { int s = preknownDevices.length; for (int i = 0; i < s; i++) { logger.log( LogService.LOG_DEBUG, "Preknown device" + i + ":" + preknownDevices[i].getBluetoothAddress() + ", " + preknownDevices[i]); } } try { incomingThread = new IncomingThread(1, btAddress); incomingThread.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }