不必通过蓝牙UUID连接到Android设备的烦恼

你好,我想建立一个蓝牙应用,我无法连接到另一台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设备。 帮助表示赞赏一如既往。 谢谢。

--------------解决方案-------------

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

为了创建两个设备上的应用程序之间的连接,必须同时实现服务器端和客户端的机制,因为一台设备必须打开一个服务器套接字,另一个必须发起连接(使用服务器设备的MAC地址启动连接)。 服务器和客户端被认为是相互连接时,他们每个人都有在同一个RFCOMM通道连接的BluetoothSocket。 在这一点上,每个设备都可以获取输入和输出流和数据传输可以开始,这是在大约管理一个连接的部分讨论。 本节将介绍如何启动两个设备之间的连接。

服务器设备和客户端设备的每个获得以不同的方式所需的BluetoothSocket。 服务器将收到它时,传入的连接被接受。 当它打开一个RFCOMM通道到服务器的客户端将收到它。

分类:安卓 时间:2015-03-15 人气:0
本文关键词: 机器人,蓝牙
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.844 (s). 10 q(s)