Question

I'm new to java / object oriented language and wanted to get some help on the syntax.

I have a class defined in ConnectThread.java as

public class ConnectThread extends Thread {
private final BluetoothSocket mmSocket;
private final BluetoothDevice mmDevice;
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();


public ConnectThread(BluetoothDevice device) {
    // Use a temporary object that is later assigned to mmSocket,
    // because mmSocket is final
    BluetoothSocket tmp = null;
    mmDevice = device;

    // Get a BluetoothSocket to connect with the given BluetoothDevice
    try {
        // MY_UUID is the app's UUID string, also used by the server code
        UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 
        tmp = device.createRfcommSocketToServiceRecord(uuid);
    } catch (IOException e) { }
    mmSocket = tmp;
}



public void run() {
    // Cancel discovery because it will slow down the connection
    mBluetoothAdapter.cancelDiscovery();

    try {
        // Connect the device through the socket. This will block
        // until it succeeds or throws an exception
        mmSocket.connect();
    } catch (IOException connectException) {
        // Unable to connect; close the socket and get out
        try {
            mmSocket.close();
        } catch (IOException closeException) { }
        return;
    }

    // Do work to manage the connection (in a separate thread)
    //manageConnectedSocket(mmSocket);
}



/** Will cancel an in-progress connection, and close the socket */
public void cancel() {
    try {
        mmSocket.close();
    } catch (IOException e) { }
}
}

From here I tried to create a thread and connect this thread by writing this code in my connect method:

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothDevice targetdevice;
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
if (pairedDevices.size() > 0) 
{
// Loop through paired devices
    for (BluetoothDevice device : pairedDevices) 
    {
         if (device.getName().equals("HC-06"))
            targetdevice = device;
    }
}
Thread writeThread = new Thread();
writeThread.ConnectThread(targetdevice);

I get the error in the last line and it says "The method ConnectThread(BluetoothDevice) is undefined for the type Thread" I thought since ConnectThread is an extended class of Thread, I could use the methods under it. Is this not the case? What would be the right way to go about doing this? Thanks!

Was it helpful?

Solution

Change your last two strings to:

 Thread writeThread = new ConnectThread(targetdevice);

When you need to start your ConnectThread use start() method:

 writeThread.start(); //If you need start run() method of ConnectThread.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top