我正在构建一个 Android 应用程序,用于跟踪设备上的蓝牙连接,并在超出范围时触发警报。
Android 文档要求提供 UUID 才能建立连接。
“uuid”是用于唯一标识信息的字符串 ID 的通用唯一标识符 (UUID) 标准化 128 位格式。它用于唯一标识您的应用程序的蓝牙服务。
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
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) { }
mmSocket = tmp;
}
我没有在两台设备上安装应用程序,所以我无法设置自己的 UUID,我想使用 android 的 UUID...但我在任何地方的文档中都找不到这个。
也许我没有正确处理这个问题。任何帮助将不胜感激。
提前致谢
您可以从蓝牙设备获取UUID
mmDevice = device;
// Get a BluetoothSocket to connect with the given BluetoothDevice. This code below show how to do it and handle the case that the UUID from the device is not found and trying a default UUID.
// Default UUID
private UUID DEFAULT_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
try {
// Use the UUID of the device that discovered // TODO Maybe need extra device object
if (mmDevice != null)
{
Log.i(TAG, "Device Name: " + mmDevice.getName());
Log.i(TAG, "Device UUID: " + mmDevice.getUuids()[0].getUuid());
tmp = device.createRfcommSocketToServiceRecord(mmDevice.getUuids()[0].getUuid());
}
else Log.d(TAG, "Device is null.");
}
catch (NullPointerException e)
{
Log.d(TAG, " UUID from device is null, Using Default UUID, Device name: " + device.getName());
try {
tmp = device.createRfcommSocketToServiceRecord(DEFAULT_UUID);
} catch (IOException e1) {
e1.printStackTrace();
}
}
catch (IOException e) { }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)