Subversion Repositories Projects

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

/***************************************
 *                                      
 * searches 4 Bluetooth Devices        
 *                                      
 * Author:        Marcus -LiGi- Bueschleb
 *
 * see README for further Infos
 *
 ****************************************/


import javax.bluetooth.*;

public class BTSearcher
    implements DiscoveryListener
               
{
    private LocalDevice m_LclDevice = null;    
    private DiscoveryAgent m_DscrAgent=null;



    public boolean searching=true;
    public boolean error=false;
    public String  err_log="none";


    public final int MAX_DEVICES=10;

    public RemoteDevice[] remote_devices;
    public int remote_device_count=0;  
    public String[] remote_device_name;
    public String[] remote_device_mac;


    public BTSearcher()
    {

        remote_devices=new RemoteDevice[MAX_DEVICES];
        remote_device_name=new String[MAX_DEVICES];
        remote_device_mac=new String[MAX_DEVICES];

        remote_device_count=0;          
       
    }

    public void search()
    {
        searching=true;
        remote_device_count=0;          
        try
            {
                //First get the local device and obtain the discovery agent.
                m_LclDevice = LocalDevice.getLocalDevice();
                m_DscrAgent=  m_LclDevice.getDiscoveryAgent();
     
                m_DscrAgent.startInquiry(DiscoveryAgent.GIAC,this);
            }
        catch (BluetoothStateException ex)
            {
                error=true;
                err_log+="Problem in searching the blue tooth devices\n" + ex;
               
            }

    }

    public void inquiryCompleted(int transID) {

        try {
            for(int i=0;i<remote_device_count;i++)
                {
                    remote_device_name[i]=remote_devices[i].getFriendlyName(true);
                    remote_device_mac[i]=remote_devices[i].getBluetoothAddress();

                }
        }
        catch (Exception e)
            {
                err_log+="Problem in searching the blue tooth devices";
            }  
        searching=false;
    }


    public void search_again()
    {
    }

    //Called when device is found during inquiry
    public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod)
    {
        try
            {
                if (remote_device_count!=(MAX_DEVICES-1))
                    {
                        remote_devices[remote_device_count]=btDevice;
                        remote_device_count++;
                    }
            }
        catch (Exception e)
            {
                err_log+=("Device Discovered Error: " + e);    
            }

    }


    public void serviceSearchCompleted(int transID, int respCode)
    {   }

    public void servicesDiscovered(int transID, ServiceRecord[] records)
    {    }



}