无法将Pc与Android 2.1手机连接以用于蓝牙聊天示例

时间:2011-04-10 22:36:58

标签: android bluetooth uuid

我是Android设备编程的新手。我正在制作一个涉及Android(Mini-Xperia pro with Android 2.1)和蓝牙与设备通信的学校项目。 我正试图一步一步地去理解所有的编程内容并尽我所能。

我有一台适用于PC的蓝牙适配器,我正在使用Windows XP,因此我只连接它并且已经安装了。

好吧,我正在研究SDK附带的蓝牙聊天示例,我已经将UUID更改为:

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

使用我的手机,我进入设置并使我的设备与我的Pc配对(它表示配对但没有连接)。

但我不知道我做错了什么因为我在手机上打开蓝牙聊天应用程序,尝试连接到我的电脑,它说“无法连接设备”。

经过多次尝试后,它连接到从PC传输到手机:
  甲

AT

连接丢失(这需要不到2秒!!)

任何人都可以帮助我,请告诉我我做错了什么或者问题是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

您需要将ConnectThread代码更改为以下内容:请注意创建套接字的更改代码。

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

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

        Method m = null;
        try {
            m = device.getClass().getMethod("createRfcommSocket", 
                                                    new Class[] {int.class});
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
        try {
            tmp = (BluetoothSocket) m.invoke(device, 1);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mmSocket = tmp;
    }

答案 1 :(得分:0)

你需要通过Android应用程序连接的蓝牙串口COM端口在PC端运行一些类似超级终端的应用程序。