在我的应用程序中,我需要配对蓝牙设备,并立即与之连接。
为了配对设备,我有以下功能:public boolean createBond(BluetoothDevice btDevice)
{
try {
Log.d("pairDevice()", "Start Pairing...");
Method m = btDevice.getClass().getMethod("createBond", (Class[]) null);
Boolean returnValue = (Boolean) m.invoke(btDevice, (Object[]) null);
Log.d("pairDevice()", "Pairing finished.");
return returnValue;
} catch (Exception e) {
Log.e("pairDevice()", e.getMessage());
}
return false;
}
我将其用作以下方式:Boolean isBonded = false;
try {
isBonded = createBond(bdDevice);
if(isBonded)
{
//Connect with device
}
}
它会向我显示配对设备的对话框并输入PIN。
问题是createBond函数总是返回true,它会一直等到我输入pin并与device配对,所以我没有正确使用:isBonded = createBond(bdDevice);
if(isBonded) {...}
所以问题是我如何与设备配对,以及当设备配对时如何连接到它?
P.D我的代码基于以下线程的第一个答案:Android+通过蓝牙编程对设备进行配对