Maz*_*zze 5 android android-bluetooth pairing
最近,我尝试让配对过程以编程方式工作,并且成功了。但我最近发现我的应用程序的用户可以连接到几个“有趣的”设备。所以我必须提示用户选择要连接的设备
所以我必须将用户连接到已经配对的蓝牙设备。但我的努力都没有效果。我尝试使用以下命令再次运行配对过程:
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
还有以下内容:
Method m = mmDevice.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
mmSocket = (BluetoothSocket) m.invoke(mmDevice, 1);
Run Code Online (Sandbox Code Playgroud)
这是我已经实现的方法,也是将我的手机与嵌入式蓝牙设备配对的唯一有效方法
所以我的问题是:
恐怕我不完全确定你的问题是什么。您是否无法为已配对的蓝牙设备创建套接字?
首先,如果设备已经配对,则无需再次运行配对过程。您只需要创建用于通信的套接字,如果设备无法与之通信,则该套接字将会失败。我最近一直在围绕这个问题做一些事情,并且使用了以下代码,它对我来说效果很好:
try {
Method m = device.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });
BluetoothSocket mySocket = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
} catch (<VARIOUS EXCEPTIONS>) {
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
为了提示用户选择哪个设备,您可以查询当前配对的所有设备的BluetoothAdapter,如下所示:
Set<BluetoothDevice> bondedDevices = BluetoothAdapter
.getDefaultAdapter().getBondedDevices();
Run Code Online (Sandbox Code Playgroud)
最后,可以同时创建与多个设备的连接 - 看看这里:Android Bluetooth API connect to multiple devices
| 归档时间: |
|
| 查看次数: |
12439 次 |
| 最近记录: |