蓝牙通讯2

private class ConnectThread extends Thread {
    private final BluetoothSocket mmSocket;
    private final BluetoothDevice mmDevice;

    public ConnectThread(BluetoothDevice device) {
        BluetoothSocket tmp = null;
        mmDevice = device;

        //从BluetoothDevice中获取Socket
        try {
            // MY_UUID为UUID串,必须与服务端一致
            tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
        } catch (IOException e) { }
        mmSocket = tmp;
    }

    public void run() {
        // //取消发现远程设备,这样会降低系统性能
        mAdapter.cancelDiscovery();

        try {
            // 建立连接
            mmSocket.connect();
        } catch (IOException connectException) {
            // 无法连接或连接出错
            try {
                mmSocket.close();
            } catch (IOException closeException) { }
            return;
        }

        // 在单独的线程中处理事件,如数据传输
        manageConnectedSocket(mmSocket);
    }

    /** 取消连接,关闭Socket */
    public void cancel() {
        try {
            mmSocket.close();
        } catch (IOException e) { }
    }
}

你可能感兴趣的:(thread,socket)