有麻烦通过蓝牙UUID连接到Android设备

时间:2011-09-05 10:37:54

标签: android bluetooth

美好的一天,我正在尝试创建一个蓝牙应用程序,但我无法连接到另一个Android设备。似乎正在发生的问题出在传出连接createRfcommSocketToServiceRecord(UUID)中 - 我认为UUID对于两个设备都不正确。文档说:

  

如果您要连接到Android对等设备,请生成您自己的唯一UUID。

我的问题是 - 如果其他Android设备没有安装我的应用程序,我如何使用正确的UUID连接到它?我尝试过简单地使用通用UUID 00001101-0000-1000-8000-00805F9B34FB,但这似乎无法解决问题。

以下是代码示例的一部分:

private static final UUID MY_UUID_SECURE = 
    UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

private class ConnectThread extends Thread {
    BluetoothDevice mdevice;
    BluetoothSocket mclientSocket;

    //private String mSocketType;
    private Handler handler;
    private ProgressDialog dialog;

    public ConnectThread(BluetoothDevice device) {
        mdevice = device;
        BluetoothSocket temp = null;

        try {
            System.out.println("making connection to remote device");
            temp = mdevice.createRfcommSocketToServiceRecord(MY_UUID_SECURE);

        } catch (IOException e) {
            e.printStackTrace();
        }

        Log.i(TAG, "Bluetooth Socket" + temp.toString() + "obtained");
        mclientSocket = temp;
    }

    public synchronized void run() {
        try {
            Log.i(TAG, "starting to connect");
            mclientSocket.connect();
        } catch (IOException e) {
            Log.e(TAG, "connection Failed");

            try {
                mclientSocket.close();
            } catch (IOException e2) {
                ; // Do nothing.
            }
        }
    }

    //public void cancel() {
        //try {
            // mclientSocket.close();
        //} catch (IOException e) {
            //Log.e(TAG, "close() of connect " + mSocketType + " socket failed", e);
        //}
    //}

注意:我还没有实现蓝牙服务器套接字,而是尝试了解如何连接到未安装我的应用程序的其他Android设备。一如既往的帮助。谢谢。

1 个答案:

答案 0 :(得分:4)

来自:http://developer.android.com/guide/topics/wireless/bluetooth.html

为了在两个设备上创建应用程序之间的连接,必须同时实现服务器端和客户端机制,因为一个设备必须打开服务器套接字而另一个设备必须启动连接(使用服务器)设备的MAC地址以启动连接)。当服务器和客户端在同一RFCOMM通道上各自具有连接的BluetoothSocket时,它们被认为是彼此连接的。此时,每个设备都可以获得输入和输出流,并且可以开始数据传输,这将在“管理连接”一节中讨论。本节介绍如何启动两个设备之间的连接。

服务器设备和客户端设备均以不同方式获得所需的BluetoothSocket。接收传入连接时,服务器将接收它。客户端在向服务器打开RFCOMM频道时会收到它。

相关问题