public static final void main(String[] args) throws Exception { /*DataElement resultAttributes = new DataElement(DataElement.DATSEQ); resultAttributes.addElement(new DataElement(DataElement.U_INT_2,0)); resultAttributes.addElement(new DataElement(DataElement.U_INT_4,0x0100)); resultAttributes.addElement(new DataElement(DataElement.U_INT_2,1)); DataElement serviceClassIDList = new DataElement(DataElement.DATSEQ); UUID serviceClassUUID = new UUID(0x1111); serviceClassIDList.addElement(new DataElement(DataElement.UUID,serviceClassUUID)); resultAttributes.addElement(serviceClassIDList); resultAttributes.addElement(new DataElement(DataElement.U_INT_2,4)); DataElement protocolDescriptorList = new DataElement(DataElement.DATSEQ); DataElement l2capDescriptor = new DataElement(DataElement.DATSEQ); l2capDescriptor.addElement(new DataElement(DataElement.UUID,new UUID(0x1111))); protocolDescriptorList.addElement(l2capDescriptor); resultAttributes.addElement(protocolDescriptorList); resultAttributes.addElement(new DataElement(DataElement.U_INT_2,5)); DataElement browseClassIDList = new DataElement(DataElement.DATSEQ); UUID browseClassUUID = new UUID(0x1002); browseClassIDList.addElement(new DataElement(DataElement.UUID,browseClassUUID)); resultAttributes.addElement(browseClassIDList); resultAttributes.addElement(new DataElement(DataElement.U_INT_2,6)); DataElement languageBaseAttributeIDList = new DataElement(DataElement.DATSEQ); languageBaseAttributeIDList.addElement(new DataElement(DataElement.U_INT_2,25966)); languageBaseAttributeIDList.addElement(new DataElement(DataElement.U_INT_2,106)); languageBaseAttributeIDList.addElement(new DataElement(DataElement.U_INT_2,256)); resultAttributes.addElement(languageBaseAttributeIDList); resultAttributes.addElement(new DataElement(DataElement.U_INT_2,9)); DataElement profileDescriptorList = new DataElement(DataElement.DATSEQ); DataElement profileDescriptor = new DataElement(DataElement.DATSEQ); profileDescriptor.addElement(new DataElement(DataElement.UUID,new UUID(0x1111))); profileDescriptor.addElement(new DataElement(DataElement.U_INT_2,256)); profileDescriptorList.addElement(profileDescriptor); resultAttributes.addElement(profileDescriptorList); resultAttributes.addElement(new DataElement(DataElement.U_INT_2,256)); resultAttributes.addElement(new DataElement(DataElement.STRING,"Tini Service")); System.out.println("Result Attributes="+resultAttributes); byte[] attrBytes = resultAttributes.toByteArray(); Debug.println(6,"Result Bytes",attrBytes); DataElement reparsed = new DataElement(attrBytes); System.out.println("Reparsed Attributes="+reparsed); */ BluetoothStack.init(new BluetoothTCPClient("192.168.10.2", 2600)); BluetoothStack bluetooth = BluetoothStack.getBluetoothStack(); bluetooth.send_HCI_HC_Change_Local_Name("TINI BLUE"); bluetooth.send_HCI_HC_Write_Event_Filter_Connection_Setup((byte) 0x02); bluetooth.send_HCI_HC_Write_Event_Filter_Inquiry_Result(); bluetooth.send_HCI_HC_Write_Scan_Enable((byte) 0x03); BluetoothClient blue = new BluetoothClient(); while (remoteDevice == null) { Thread.sleep(1000); } if (remoteDevice != null) { // System.out.println("bdAddr:"+remoteDevice.getBluetoothAddress()); // System.out.println("Name:"+remoteDevice.getFriendlyName(false)); // System.out.println("major dev class :"+remoteDevice.deviceClass.getMajorDeviceClass()); // System.out.println("minor dev class :"+remoteDevice.deviceClass.getMinorDeviceClass()); // System.out.println("service classes :"+remoteDevice.deviceClass.getServiceClasses()); SDPClientChannel sdpChannel = new SDPClientChannel(remoteDevice, blue); bluetooth.connectL2CAPChannel(sdpChannel, remoteDevice, (short) 0x0001); byte[] uuidList = {0x35, 0x03, 0x19, 0x10, 0x02}; DataElement uuidListElement = new DataElement(uuidList); sdpChannel.send_SDP_ServiceSearchRequest((short) 1, (short) 14, uuidListElement); } while (serviceRecords == null) { Thread.sleep(1000); } for (int i = 0; i < serviceRecords.length; i++) { System.out.println(" " + serviceRecords[i]); int[] attrIDs = { 0xff00 }; // reversed the values for range... this avoids ranges starting with 00 to be tructated. try { serviceRecords[i].populateRecord(attrIDs); } catch (IOException e) { System.out.print("ServiceRecord.populateRecord(attrIDs) failed. " + e); } } }