Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
181 ligi 1
/*********************************************************************************************************************************
2
 *                                                                                                                                *
3
 * searches 4 Bluetooth Devices                                                                                                   *
4
 *                                                                                                                                *
5
 * Author:        Marcus -LiGi- Bueschleb                                                                                         *
6
 * Project-Start: 9/2007                                                                                                          *
7
 
8
 * Mailto:        ligi@smart4mobile.de                                                                                            *
9
 * Licence:       Creative Commons / Non Commercial                                                                               *
10
 * Big Up:        Holger&Ingo                                                                                                     *
11
 *********************************************************************************************************************************/
12
 
13
import javax.bluetooth.*;
14
 
15
public class BTSearcher
16
    implements DiscoveryListener
17
 
18
{
19
    private LocalDevice m_LclDevice = null;    
20
    private DiscoveryAgent m_DscrAgent=null;
21
 
22
 
23
 
24
    public boolean searching=true;
25
    public boolean error=false;
26
    public String  err_log="none";
27
 
28
 
29
    public final int MAX_DEVICES=10;
30
 
208 ligi 31
 
181 ligi 32
    public int remote_device_count=0;  
33
    public String[] remote_device_name;
34
    public String[] remote_device_mac;
35
 
36
 
208 ligi 37
    public void search_again()
38
    {
39
        try
40
            {
41
                remote_device_count=0;          
42
                searching=true;
43
                m_DscrAgent.startInquiry(DiscoveryAgent.GIAC,this);
44
            }
45
        catch (BluetoothStateException ex)
46
            {
47
                error=true;
48
                err_log+="Problem in searching the blue tooth devices\n" + ex;
49
 
50
            }
51
 
52
 
53
    }
54
 
181 ligi 55
    public BTSearcher()
56
    {
57
 
58
        remote_device_name=new String[MAX_DEVICES];
59
        remote_device_mac=new String[MAX_DEVICES];
60
 
208 ligi 61
 
181 ligi 62
        try
63
            {
64
                //First get the local device and obtain the discovery agent. 
65
                m_LclDevice = LocalDevice.getLocalDevice();
66
                m_DscrAgent=  m_LclDevice.getDiscoveryAgent();
67
 
68
            }
69
        catch (BluetoothStateException ex)
70
            {
71
                error=true;
72
                err_log+="Problem in searching the blue tooth devices\n" + ex;
73
 
74
            }
208 ligi 75
        search_again();
181 ligi 76
    }
77
 
78
 
79
    public void inquiryCompleted(int transID) {
80
 
81
 
82
        searching=false;
83
    }
84
 
85
 
86
    //Called when device is found during inquiry 
87
    public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod)
88
    {
89
        try
90
            {
91
                if (remote_device_count!=(MAX_DEVICES-1))
92
                    {
208 ligi 93
 
94
                        remote_device_name[remote_device_count]=btDevice.getFriendlyName(true);
95
                        remote_device_mac[remote_device_count]=btDevice.getBluetoothAddress();
181 ligi 96
                        remote_device_count++;
97
                    }
98
            }
99
        catch (Exception e)
100
            {
101
                err_log+=("Device Discovered Error: " + e);    
102
            }
103
 
104
    }
105
 
106
 
107
    public void serviceSearchCompleted(int transID, int respCode)
108
    {   }
109
 
110
    public void servicesDiscovered(int transID, ServiceRecord[] records)
111
    {    }
112
 
113
 
114
 
115
}