示例#1
0
  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);
      }
    }
  }